• 締切済み

C言語の問題です。

優勝者のデータを出力する以下のプログラムの空欄((1)~(3))を埋めて完成させてください。 #include<stdio.h> #define N 20 struct SANKA{ int zk; char name[30]; double time; }; void Yusyou⁽int n,struct SANKA ns[], struct SANKA *m){ struct SANKA wmin; int i; wmin = (1) for(i=1;i<n;i++){ if(wmin.time>ns[i].time) wmin=(2); } *m = wmin; } main(){ FILE *fp; struct SANKA score[N],max; int n=0; int i=0; fp=fopen("data100.txt","r"); while(fscanf(fp,"%d %s %lf,&score[n].zk,score[n].name,&score[n].time != EOF) n++ fclose(fp); Yusyou(n,score,(3)); printf("優勝者:ゼッケン番号 %3d番 %10s タイム%10.3f秒\n",max.zk,max.name,max.time); } data100.txtには 1 朝倉 20.5 2 池川 17.3 3.上原 19.2 4 榎本 17.1 5 岡田 16.2 6 河野 16.5 7 菊池 19.7 8 近藤 15.5 9 清水 18.8 10瀬田 16.8 全く見当がつきません。回答をお願いします。

みんなの回答

回答No.1

(1) ns[0] (2) ns[i] (3) &max --------- 整理すると #include<stdio.h> #define N 20 struct SANKA{ int zk; char name[30]; double time; }; void Yusyou(int n,struct SANKA ns[], struct SANKA *m){ struct SANKA wmin; int i; wmin = ns[0]; for ( i=1 ; i<n ; i++) { if(wmin.time > ns[i].time) { wmin=ns[i]; } } *m = wmin; } main() { FILE *fp; struct SANKA score[N],max; int n=0; int i=0; fp=fopen("data100.txt","r"); while( fscanf(fp,"%d %s %lf",&score[n].zk,score[n].name,&score[n].time) != EOF ) { n++; } fclose(fp); Yusyou(n,score, &max); printf("優勝者:ゼッケン番号 %3d番 %10s タイム%10.3f秒 \n",max.zk,max.name,max.time); } --------- 実行結果 $ ./test 優勝者:ゼッケン番号 8番 近藤 タイム 15.500秒

すると、全ての回答が全文表示されます。

関連するQ&A