トップページ⇒tech
1001コメント387KB

C/C++の宿題を片付けます 58代目

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001デフォルトの名無しさん2006/01/18(水) 03:35:45
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。
【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して
 投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 2.9 VC 6.0等)
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【C 関数検索 man on WWW】
http://www.linux.or.jp/JM/index.html

【前スレ】
C/C++の宿題を片付けます 57代目
http://pc8.2ch.net/test/read.cgi/tech/1136768567/l50#tag993
【過去スレ一覧】
http://makimo.to/cgi-bin/search/search.cgi?q=C%2B%2B%82%CC%8Fh%91%E8&andor=AND&sf=2&H=&view=table&D=tech&shw=2000
0809デフォルトの名無しさん2006/01/25(水) 23:12:10
>>808
>間違っててもしらね
08107952006/01/25(水) 23:21:31
当然全て自己責任。しかし、先生も気づいているだろうに、
これを使おうとはなかなかチャレンジャーだな。
0811デフォルトの名無しさん2006/01/25(水) 23:25:19
相関の算出がまちがってる気もする。
0812お願いします2006/01/25(水) 23:45:12
でも、ほかに やりかた ありますか?
0813デフォルトの名無しさん2006/01/25(水) 23:50:39
ん・他の方法が出てくるのを待つ<やり方
0814お願いします2006/01/26(木) 00:17:17
やりかた というか 本気で知りたいんです。
0815デフォルトの名無しさん2006/01/26(木) 00:20:41
>>695
>>711
そろそろまじやばい。
ヒントの空欄埋めて出力する部分を作らないといけないんです。
お願いします。
0816デフォルトの名無しさん2006/01/26(木) 00:21:48
>本気で知りたいんです。
うんうん。知りたいのはわかったから。
本気なら調べるくらいはしたら?

追記:
くれぐれもセンセに教えるとかVIPに知らせるとか、
メールアドレス晒すとかしないよーに。
0817デフォルトの名無しさん2006/01/26(木) 00:24:08
んー。あのソース見づらいからビットのON/OFFで組み合わせを表現(5ビットですな)。
整数型の変数を0〜2^5-1でループさせて・・・って組んだんで、UPはできないなぁ・・・。
0818お願いします2006/01/26(木) 00:34:16
一応 平行して 調べたりしてるのですが、なかなか わからないので。。。
0819デフォルトの名無しさん2006/01/26(木) 00:46:38
iwatenet氏、私も調べてみた。

>_ [仕事] 認証のやりなおし
>
>このサーバに設置している講義のサポートページには認証をかけ、特定の人以
>外には見られないようにしている。その認証に必要な ID とパスワードが流出
>した。
>
>流出させた人は、課題が書かれた PDF を見せて質問したかったらしい。課題
>そのものが曝されるのはともかく、その他に外部に曝したくない情報までアク
>セス可能になってしまうのは好ましくないと判断し、アクセス制限とパスワー
>ドの変更で対処した。どういう経緯で知ったか、具体的に何がまずいと考えた
>かについてはここでは伏せる。
>
>それにしても、課題について訊きたいことがあるなら、メールを筆者宛に出す
>なり、直接筆者のところまで質問しに来ればいいのに。ちょっと落ち込むなあ

いい先生だなぁ。
先生。講義資料をOPENにしてくださると、独学してる人間は助かります。
それと、学校でマジメに勉強しようとは思わない人間にいくら課題だしても
自分でやらんと思います。
08208052006/01/26(木) 00:50:06
同じ画像で1.0、反転した画像で-1.0になることは確認したけど。
正しく数値出るけど、要求してる式とは違うって事?
0821デフォルトの名無しさん2006/01/26(木) 00:58:24
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1547.txt

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] gcc
 [3.3] 言語: C
[4] 期限: [2006年01月27
[5] その他の制限:特にないです。よろしくお願いします
0822デフォルトの名無しさん2006/01/26(木) 00:59:55
課題のPDFファイル見る限り、学生に課題投げて後シラネって感じはないな。
課題の関数部分もちゃんと簡単な擬似コーディングしてあるし、
説明も平易でわかりやすく書いてある。

0823デフォルトの名無しさん2006/01/26(木) 01:00:37
さて、浮動小数点型の「一致」をどう定義するかだが…。
0824デフォルトの名無しさん2006/01/26(木) 01:05:23
>>819
>先生。講義資料をOPENにしてくださると、独学してる人間は助かります。
俺漏れも。なんだったら月会費払ってもいいよ。1000円ぐらい。
0825デフォルトの名無しさん2006/01/26(木) 01:09:33
すまん。流出発覚は俺のアクセスかもしんない。
IPに地域名でるんだ‥九州からじゃ丸分りだったな。
0826デフォルトの名無しさん2006/01/26(木) 01:13:19
>>819
いい先生だ・・・受けるなら、こんな先生の講義を受けたいね。
普通だったらこんな事態になったら、酷い場合は退学処分にすら
なるのに。
0827ww2006/01/26(木) 01:28:02
>>819
どこの情報だよ? それ
0828ぷろっぷ2006/01/26(木) 01:33:04
たしかに いい先生だよ!!
0829デフォルトの名無しさん2006/01/26(木) 01:38:38
ソースは、センセのページのmisc.log。
正直に言うけど、Makefileまで書いてくださってるので、すんごく親切。
あの資料作るのに何時間かけてるんだろ…。
0830デフォルトの名無しさん2006/01/26(木) 01:54:55
さて、寝よ。明日のゴミだしに起きられなくなる。
0831デフォルトの名無しさん2006/01/26(木) 02:00:58
もやしうまかった
さて○○○して寝るか
08328052006/01/26(木) 02:02:25
腹減った
0833デフォルトの名無しさん2006/01/26(木) 02:46:20
試験勉強するために3時間睡眠でおきて来た
さぁお前らの宿題なんてやってらんね勉強しよ
宿題出すやつもちっとは自分で考えてみやがれ
0834デフォルトの名無しさん2006/01/26(木) 03:18:24
依頼者はせめて回答者をやる気にさせる努力をしないとなw
0835デフォルトの名無しさん2006/01/26(木) 04:12:05
>>833
なんの試験勉強なんだ?
0836デフォルトの名無しさん2006/01/26(木) 04:19:21
>>835
確率統計と科学英語
まぁ大学の試験勉強
0837デフォルトの名無しさん2006/01/26(木) 04:24:16
>>836
そうかー
宿題はなんとかするからガンガレ! 健闘を祈る ノシ
0838デフォルトの名無しさん2006/01/26(木) 04:28:11
なんとかするってのは
回答者なのか依頼者なのか
0839デフォルトの名無しさん2006/01/26(木) 06:59:21
【質問テンプレ】
[1] 授業単元: ファイルの入出力
[2] 問題文(含コード&リンク):
3個の数を入力し、それぞれを係数a, b, cとみなして
関数f(x) = ax2+bx+cが描くグラフを'*'を用いて表示するプログラムを作成せよ。
X軸、Y軸もつけて
[3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2006年1月26日10時
[5] その他の制限:特になし

誰か助けてください。atoiでも使うんでしょうか・・・
0840デフォルトの名無しさん2006/01/26(木) 07:08:48
むしろatoiをどこで使うのか教えてください
0841デフォルトの名無しさん2006/01/26(木) 07:48:07
>>839
x,yの範囲は?
0842デフォルトの名無しさん2006/01/26(木) 08:26:03
特に指定してないです。画面上に収まればOK
0843デフォルトの名無しさん2006/01/26(木) 08:28:39
>>839
時間ないから超適当w
$ a.out .2 .4 .1 みたいな感じで。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define RANGE 20
int main(int argc,char *argv[]){
int graph[RANGE*2][RANGE*2],i,j,temp;
float x,y,a,b,c;
memset(graph,0,sizeof(graph));
a = atof(argv[1]);
b = atof(argv[2]);
c = atof(argv[3]);
for(i=0,x=(float)(-1)*RANGE/10;x<(float)RANGE/10;x+=.1,i++){
y = a*x*x + b*x + c;
temp =(int) RANGE + y * 10;
graph[temp][i]=1;
}
for(i=RANGE*2-1;i>=0;i--){
for(j=0;j<RANGE*2;j++){
if(graph[i][j]==1) printf("*");
else if (i==RANGE) printf("-");
else if (j==RANGE) printf("l");
else printf(" ");
}
printf("\n");
}
return 0;
}
0844デフォルトの名無しさん2006/01/26(木) 08:36:58
あー,配列の範囲考えるの忘れた…。
if((0<=temp)&&(temp<RANGE*2)) graph[temp][i]=1;
だな。
0845デフォルトの名無しさん2006/01/26(木) 09:54:10
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):
リストA:2,5,9,10
リストB:1,4,7,11
 この2つのリストを先頭から順に読んで、以下の様なリストCを作る。
リストC:1,2,4,5,7,9,10
 この様な操作はA,Bが整列されている事を前提とした上で、各リストの長さの和に比例する時間でリストマージが終了する。アルゴリズムとして書けば以下の様になる。
リストCを空とする
リストAの先頭をtopA、リストBの先頭をtopBとする(以降の動作では現在の位置となる)
topAもしくはtopBが空でない間、以下を繰り返す

topA->data<topB->dataならばtopA->dataをリストCにつなぎ、topA=topA->nextとする。topA->data>=topB->dataならばtopB->dataをリストCにつなぎ、topB=topB->nextとする。

注1:リスト構造は一方向とし、各要素はdata領域とnext領域を持つものとする。
注2:上記のアルゴリズムのままではtopAもしくはtopBが空になっても存在しないdata領域を使おうとするので、修正の要がある。
注3:リストマージの結果としては生成されたリストCを返す事。

課題:リストマージの関数を実現し、それを利用してリストマージを行え。リストのデータとしては整数を想定せよ。データは上記のデータを想定せよ。各リストに対して標準入力から入力するものとする。

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2006/01/27
[5] その他の制限: 留年かかってますなんとかお願いします

0846デフォルトの名無しさん2006/01/26(木) 10:02:15
いつもは回答者の俺も単位がやばいんだ。すまんな。
土日ならやってやれるんだが…。
0847デフォルトの名無しさん2006/01/26(木) 10:13:02
高卒の漏れにも分かるな。大学のC言語はヘボいもんだな。
0848デフォルトの名無しさん2006/01/26(木) 10:14:19
高卒の漏れでも解けるんだからお前ら自分でやれよwwwwwwwww
適当に大学に入ったカスどもがwwwww
0849デフォルトの名無しさん2006/01/26(木) 10:20:07
>>845
適当に行詰めたから自分で適宜改行してくれ
>>848
口だけだから高卒止まりなんですか?
言うだけなら幼稚園児でも出来ますよ

#include<stdio.h>
#include<stdlib.h>
typedef struct list list;
struct list{list*next;int data;};
list*cons(int data,list*next){
 list*p=(list*)malloc(sizeof(list));
 p->next = next;p->data = data;return p;}
list*maaaaazi(list*a,list*b){
 list*base=NULL;list**c = &base;
 while(a && b){
  list**p=a->data < b->data ? &a : &b;*c = *p;*p = p[0]->next;c = &c[0]->next;
 }
 *c = a?a:b;
 return base;
}
int main(void){
 list*A = cons(2,cons(5,cons(9,cons(10,NULL))));
 list*B = cons(1,cons(4,cons(7,cons(11,NULL))));
 list*C = maaaaazi(A,B);list*itr;for(itr = C;itr;itr = itr->next)printf("%d,",itr->data);
 return 0;
}
0850デフォルトの名無しさん2006/01/26(木) 10:24:08
おっと、入力データは標準入力からか。
まぁ、それ位は出来ると思うからその辺は自分でやってくれ。
fgets + strtolで簡単に出来るから
0851デフォルトの名無しさん2006/01/26(木) 10:35:51
と、言いつつ暇なので書いてしまった。
上のソースのmain関数の部分をこれと置き換えて

list*inputList(char*p){
 char*next=p;
 int v = strtol(p,&next,0);
 if(p == next)return NULL;
 else return cons(v,inputList(next));
}
int main(void){ 
 list*A,*B,*C,*itr;
 char buf[80];
 printf("A:");A = inputList(fgets(buf,80,stdin));
 printf("B:");B = inputList(fgets(buf,80,stdin));
 printf("C:");C = maaaaazi(A,B);
 for(itr = C;itr;itr = itr->next)printf("%d,",itr->data); 
 return 0; 
}
0852デフォルトの名無しさん2006/01/26(木) 11:34:14
>>843
ありがとうございます。
でもコンパイルするとmemsetの前がエラーって出るんですが・・・
0853デフォルトの名無しさん2006/01/26(木) 11:38:54
>>852
エラーメッセージの内容も書かない奴に何を言えと?
0854デフォルトの名無しさん2006/01/26(木) 11:43:59
単に「error before memset」です。
08558212006/01/26(木) 12:06:20
だれかお願いします!
0856デフォルトの名無しさん2006/01/26(木) 12:25:21
>>819
寝てる間にえらいことになってるなw
まぁ先生に通報したのは俺な訳だが。
普段ならスルーしてるが、ID/Passまで晒したのが
仮にもム板に来てる人間にしてはモラル無さ杉だと思ったんでな

ってか、ほんとにいい先生だな
0857デフォルトの名無しさん2006/01/26(木) 12:31:28
>>855
#include <stdio.h>
#include <math.h>
#define PI 3.141592653589793238462643383279502884197169399375105820974944

double deg2rad(int deg){
return ((2*PI*deg)/360);
}

main(){
int i;
double d;
for(i=0;i<=360;i++){
d=deg2rad(i);
if(
printf("%d deg=%.6f[rad], sin=%.6f, cos=%.6f, tan=%.6f\n", i, d, sin(d), cos(d), tan(d));
}
}

途中まで
08587672006/01/26(木) 12:55:31
誰か頼む
0859デフォルトの名無しさん2006/01/26(木) 13:30:11
>>855
#include <stdio.h>
#include <math.h>
#include <float.h>
#define PI 3.141592653589793238462643383279502884197169399375105820974944

typedef struct {
int c1;
int c2;
}comp;

double deg2rad(int deg){
return ((2*PI*deg)/360);
}

main(){
int i;
double d;
comp c;c.c1=0;c.c2=0;
for(i=0;i<=360;i++){
d=deg2rad(i);
if(i==90||i==270){
printf("計算不可\n");continue;
}
if(fabs(sin(d)/cos(d)-tan(d))<DBL_EPSILON){c.c1++;}else{c.c2++;}
printf("%d deg=%.6f[rad], sin=%.6f, cos=%.6f, tan=%.6f, c1=%d, c2=%d\n", i, d, sin(d), cos(d), tan(d), c.c1, c.c2);
}
}
c1が一致回数、c2が不一致回数ね
0860デフォルトの名無しさん2006/01/26(木) 14:03:31
>>859
ほんとありがとうございます!
0861デフォルトの名無しさん2006/01/26(木) 14:34:25
>>847-848
なんというか言動から高卒臭が漂ってきます
0862デフォルトの名無しさん2006/01/26(木) 15:13:55
高卒で現在27歳年収720万円ですが何か?
0863デフォルトの名無しさん2006/01/26(木) 15:17:42
いいんじゃないでしょうか
0864デフォルトの名無しさん2006/01/26(木) 15:19:22
中卒のドカタのほうが儲けてるよな
貯金も無いようだけど
0865デフォルトの名無しさん2006/01/26(木) 15:21:13
時代は肉体労働だな
0866デフォルトの名無しさん2006/01/26(木) 15:39:17
>>862
そんな珍しくもなくね?
0867デフォルトの名無しさん2006/01/26(木) 15:55:23
>>862
先輩スゲーよ。高卒の漏れは最近まで年収240万だった。・゚・(ノД`)・゚・。
0868デフォルトの名無しさん 2006/01/26(木) 15:56:32
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
  以下のチャットプログラムを参考にして、特定のIPからのアクセス制限をつける。
  (アクセス権が無い旨のメッセージをクライアント側に表示)
サーバー側ソース  
  ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1548.txt
  クライアント側ソース
  ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1549.txt

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: [2006年1月30日]
[5] その他の制限: なるべく簡単な変更でお願いします。

過去ログにアクセス制限の宿題が載っていたのですが、
すでにリンク切れで参考にできませんでした。
よろしくお願いします。
0869デフォルトの名無しさん2006/01/26(木) 15:57:48
こりゃあまたできる人が限定されそうなの出てきたな
俺無理
0870デフォルトの名無しさん2006/01/26(木) 16:01:55
Windowsでgccか
入れるのがめんどくさい
0871デフォルトの名無しさん2006/01/26(木) 16:06:27
もうwinsock2.hに切り替えて全面改装した方が早いんじゃねーの?
0872デフォルトの名無しさん2006/01/26(木) 16:11:39
>>868
 [3.1] OS: Windows
こう書いてある割りにはやけにLinuxなソースだな
#ifdef多用で読みづらいし何て糞ースだよ
0873デフォルトの名無しさん2006/01/26(木) 16:14:46
てゆーか#ifdef使わんでいいだろ
0874デフォルトの名無しさん2006/01/26(木) 16:37:45
>>849-851
本当に感謝。
明日提出してなんとか留年免れてきます!
0875デフォルトの名無しさん2006/01/26(木) 16:39:11
教師に( ・∀)人(∀・ )通報しますた!
0876デフォルトの名無しさん2006/01/26(木) 16:41:45
この問題は信州大の奴だな。
大分前のスレで信州大の講義用ウェブサイトが貼られてて、その中で見た記憶がある。
ついでに信州大のそのサイトの講義内容は酷かった。
0877デフォルトの名無しさん2006/01/26(木) 16:42:23
よし晒せ!
0878デフォルトの名無しさん2006/01/26(木) 16:47:28
大学の留年かかった問題なら自分で解けよ。
大学のレベルを下げる生徒が卒業したら大問題だ
0879デフォルトの名無しさん2006/01/26(木) 16:50:47
今度から一見正しいけど出題者の例以外のパターンだと暴走するのでも作ろうか
0880デフォルトの名無しさん2006/01/26(木) 17:12:30
何かと思ったらIDとパスまでここに載せたのね
これって乗せた人間も不正アクセス禁止法にひっかかるんだっけ?
0881デフォルトの名無しさん2006/01/26(木) 17:37:53
[1] プログラミング演習
[2]ダイクストラ法により隣接行列で表されるグラフの最短経路を求めるプログラムを書きかけた。
このプログラムを完成させ、下の例のグラフで0番の節点から,4番の節点に至る最短経路を求めよ、
プログラム中には、動きがわかるように詳しいコメントを記すこと。
特に、shortestpath関数の詳しい説明を求める。
未完成プログラム⇒http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1550.txt
[3.1]Linux[3.2]gcc[3.3]c言語 
[4] 1/31まで
[5] (↓グラフ例)
0 1 2 3 4 ⇒最初の行は節点番号
0 2 0 2 0
2 0 2 1 3
0 2 0 5 4
2 1 5 0 2
0 3 4 2 0
因みにこれを画像で表すとこうなります。↓
⇒http://ccfa.info/cgi-bin/up/src/up23553.bmp
念のため、ダイクストラ法の分かり易い説明が書いてあるサイトを貼っておきます。
⇒http://karel.tsuda.ac.jp/class2005/algo/c24.html
それではお願いしますm(__)m
0882デフォルトの名無しさん2006/01/26(木) 18:54:19
>>879
鬼w
でも今回の件で、苦労して問題出す先生もいるんだから、あんまり
完全回答しない方がいいのかなって気もした。一箇所だけ空欄とかw
0883デフォルトの名無しさん2006/01/26(木) 19:05:05
IOCCCばりに読みにくいソースとか
0884デフォルトの名無しさん2006/01/26(木) 19:08:22
[1] 授業単元:c演習
[2] 問題文(含コード&リンク):個数が未知のデータをメモリにためる方法の例
(http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1551.txt)において
メモリがどのように確保されるかを説明せよ.説明に図を用いる場合には,
その図と図中の文字は手書きでもかまわない.
[3] 環境
 [3.1] OS: mac
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2006年1月27日17時まで
[5] その他の制限: 大学1年です。配列、ポインタあたりまでやりました。
0885デフォルトの名無しさん2006/01/26(木) 19:19:36
[1] 授業単元:c演習
[2] 問題文(含コード&リンク):関数 mlc1 と mlc2 の違いを以下の観点から
500字以内で説明せよ.説明にソースコードの引用を用いる場合には,
その部分は字数制限の対象にはしない.説明に図を利用する場合,
その図と図中の文字は手書きでもよい.

・「値渡し」と「アドレス渡し」

・実行時間

プログラムhttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1552.txt

[3] 環境
 [3.1] OS: mac
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2006年1月27日17時まで
[5] その他の制限: >>894のものですが、
全部で五問あるのでお願いします。これは二問目です。
0886ど素人2006/01/26(木) 19:27:23
すんません、>>615の問題をやってみたのですが、
#include <stdio.h>

int main()
{
float x = 3.0, y = 8.0;

printf("商は%f, 余りは%f",x / y, x % y);

return0;
}

これでコンパイル通らず、%無効なオペランドです と出ます。
なんででしょうか・・・
0887デフォルトの名無しさん2006/01/26(木) 19:30:11
惜しいな%%
0888デフォルトの名無しさん2006/01/26(木) 19:30:13
[1] 授業単元:c演習
[2] 問題文(含コード&リンク):標準ライブラリとして提供されている
文字列処理の機能を使用することなく,標準関数strcmp()と同等の処理を行う
関数mystrcmp()を定義せよ.
[3] 環境
 [3.1] OS: mac
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2006年1月27日17時まで
[5] その他の制限: >>894のものです、これは三問目です。
0889デフォルトの名無しさん2006/01/26(木) 19:33:13
>>885 >>888

>>884の間違いです、すんません
0890デフォルトの名無しさん2006/01/26(木) 19:34:49
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク): 10人の名前、年齢、電話番号の入ったファイルを作り、それを読み出すファイルを作れ。
そのとき、ファイル名は画面上で自由に設定でき、ファイルの拡張子はdatとなるようにせよ。
また、ファイル名が8文字を越えると、入力したファイル名は無効となり、再度ファイル名の入力を要請できるようにせよ。
問題上のファイルに新たに1人のデータを追加するためのプログラムを作れ。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: すいませんわかりません
 [3.3] 言語:C
[4] 期限:2006年1月30日まで
[5] その他の制限: 初心者なので、あまり難しくないものでお願いします。
0891デフォルトの名無しさん2006/01/26(木) 19:35:17
>>888
int mystrcmp(const char*a,const char*b){
    int diff;
    for(;(diff = *a - *b)==0 && *a;++a,++b){}
    return diff;
}
0892デフォルトの名無しさん2006/01/26(木) 19:35:20
>>886
printf("商は%.5f, 余りは%d",x / y, (int)x % (int)y);
0893デフォルトの名無しさん2006/01/26(木) 19:37:38
>>884
字数は数えてない。ポインタ経由でのアクセスによる影響は無視。どうせ両方スタックにあるんだし。

関数 mlc1 と mlc2の引数機構(parameter mechanism)は共に値渡しである。そもそもCには値渡し以外の引数機構は存在しない。故に「「値渡し」と「XXX」」という観点からこれら2つの関数の「違い」を説明するならば、「違いはない」としか言いようがない。
また、実行時間については
mlc1はstruct data型という巨大な方の引数をとるため、仮引数オブジェクトの生成に時間がかかる可能性がある
mlc2はstruct data*型という比較的小さな方の引数をとるため仮引数オブジェクトの生成にはmlc1程には時間はかからない可能性が高い
0894デフォルトの名無しさん2006/01/26(木) 19:38:16
>>893
>>885だった。
0895ど素人2006/01/26(木) 19:39:33
>>887
ハッ

そっちの問題だったのですね・・・%fを疑ってました。
ありがとうございました!
0896デフォルトの名無しさん2006/01/26(木) 19:43:10
>>695
>>711
数日悩んだけど、わからなくて進まなくなりました。
誰か助けてください。
期限:今日中
0897ど素人2006/01/26(木) 19:43:31
>>892
ありがとうございました!
0898デフォルトの名無しさん2006/01/26(木) 20:08:13
>>891
ありがとうございます!
0899デフォルトの名無しさん2006/01/26(木) 20:10:22
その「ヒント」プログラムの穴埋めは、嫌なんだが・・・。
0900デフォルトの名無しさん2006/01/26(木) 20:12:58
>>893
どうもありがとうございます!
0901デフォルトの名無しさん2006/01/26(木) 20:34:25
>>同意。っていうか、ぱっと見た感じ、ヒント少しおかしい気がする。
最初、i=0のループを回すとき、D[i-1][???]のi-1って負になる気が
するんだが、気のせいかな?
ついでにいうと、ヒントの1535.txtはロダから流れている。
09029012006/01/26(木) 20:57:47
>>901
あ、ごめん、流れてなかった。寝不足で見違えたか・・・スマソ
0903デフォルトの名無しさん2006/01/26(木) 21:00:38
>>695
アルゴリズムが大体同じならヒント通りじゃなくてもいいです。
0904デフォルトの名無しさん2006/01/26(木) 21:04:39
えーっと。
「全ての組み合わせのうち、最高のものを見つける」
ってアルゴリズムでOK?>>903
0905デフォルトの名無しさん2006/01/26(木) 21:06:48
695のアルゴリズムでは重量の最大を超えても制限を受けないので、全てを選択すればよい
09069032006/01/26(木) 21:07:00
>>904
それそれ〜(・∀・)
0907デフォルトの名無しさん2006/01/26(木) 21:26:42
C言語なのにわざわざ[n+1]で宣言してfor(i=1;i<=n;i++)とループを回してるのが気に入らない。
0908デフォルトの名無しさん2006/01/26(木) 21:45:06
気に入らないときは、indentでもかますこと。
Cらしく書いたつもり。

#include <stdio.h>

/* 問題の定義 */
#define n 5 /* 品物の種類 */
#define WMAX 10 /* 重さの最大 */
static int w[n]={2,3,4,5,6}; /*各物品の重量*/
static int v[n]={4,5,8,9,11}; /*各物品の価値*/

int sum(int *p, unsigned x) { int retval = 0; for (; x; p++, x >>= 1)
if (x & 1) retval += *p; return retval; } void print(unsigned x) {
int i; int sumw = sum(w, x); int sumv = sum(v, x); for (i = 0; x;
i++, x >>= 1) if (x & 1) printf("(%d, %d) ", w[i], v[i]);
printf("%d %d\n", sumw, sumv); } int main(void) { unsigned x, best
= 0; for (x = 0; x < (1 << n); x++) { if (sum(w, x) <= WMAX &&
sum(v, x) > sum(v, best)) { best = x; print(x); } } return 0; }
レス数が900を超えています。1000を超えると表示できなくなるよ。