【質問1】rewind()
の()
の中に入れるものは、stdin
とfp
のどちらですか?
【質問2】[実行結果の例]のように出力できないのですが、どこを間違えているのでしょうか?
以上、よろしくお願いいたします。
<課題> データファイル”data.txt”から温度を読み込み(ファイル操作のエラー処理を付ける),平均気温を算出するプログラム kadai11.c を作りなさい(平均気温の表示は,小数点以下2桁とする).なお,データを最後まで読み込んだら終了とすること.変数名は,温度:ondo,地点数カウント:chiten,平均気温:heikin,ファイルポインタ:fp とする.データファイルは,座学の練習問題 11-1 のプログラム”rensyu11-1.c”を使って作成する(コンパイルして実行すればよい).
[data.txt の内容]
23
32
25
29
[実行結果の例]
地点 1 の温度:23
地点 2 の温度:32
地点 3 の温度:25
地点 4 の温度:29
4 地点の平均気温:27.25
/*data.txt*/ #include<stdio.h> #include<stdlib.h> int main(void) { int i, ondo; FILE *fp; if((fp = fopen("data.txt","w")) == NULL) { printf("ファイルを開けません \n"); exit(EXIT?FAILURE); } printf("4地点の温度を入力してください"); for(i=0;i<4;i++) { scanf("%d", &ondo); fprintf(fp, "%d \n", ondo); } if(fcloase(fp) == EOF) { printf("ファイルを開けません \n"); exit(EXIT_FAILURE); } return 0; }
/*kadai.c*/ #include<stdio.h> #include<stdlib.h> int main(void) { int ondo, chiten; float heikin; FILE *fp; if((fp = fopen("data.txt","w")) == NULL) { printf("FILE OPEN ERROR \n"); exit(EXIT_FAILURE); } rewind(fp); while((fscanf("%d",&ondo)) !=EOF) { printf("地点%dの温度:%d \n",++chiten ,ondo); heikin += ondo; } printf("%d地点の平均気温:%.4f",heikin/chiten); if(fclose(fp) == EOF) { printf("FILE CLOSE ERROR \n"); exit(EXIT_FAILURE); } return 0; }
回答1件
あなたの回答
tips
プレビュー