c言語
1コード 2#include<stdio.h> 3int main(void) { 4 FILE *ofp; 5 FILE *wfp; 6 int score = 0, max = 0, min = 100, i = 1, sc; 7 char str[100]; 8 static char *a, *b; 9 ofp = fopen("TEST.txt", "r"); 10 wfp = fopen("RESULT.txt", "w"); 11 if (ofp == NULL || wfp == NULL) { 12 printf("ファイルをオープンできませんでした"); 13 return 1; 14 } 15 else { 16 printf("ファイルをオープンしました\n"); 17 } 18 while (fscanf(ofp, "%s", str) != EOF && 19 (fscanf(ofp, "%d", &sc) != EOF)) { 20 if (max < sc) { 21 max = sc; 22 a = str; 23 printf("最大%s\n", a); 24 } 25 if (min > sc) { 26 min = sc; 27 b = str; 28 printf("最小%s\n", b); 29 } 30 printf(" 最大%s\n", a); 31 printf(" 最小%s\n", b); 32 score += sc; 33 fprintf(wfp, "%s %d\n", str, sc); 34 i++; 35 } 36 37 fprintf(wfp, "合計%d点 平均%d点\n最大値%s %d\n最小値%s %d\n", score, score / (i - 1), a, max, b, min); 38 fclose(ofp); 39 fclose(wfp); 40 return 0; 41}
TEST.txt
A 20
B 40
C 35
D 60
F 70
G 50
H 85
I 65
J 80
K 95
RESULT.txt
A 20
B 40
C 35
D 60
F 70
G 50
H 85
I 65
J 80
K 95
合計600点 平均60点
最大値K 95
最小値K 20
最大値と最小値の人の部分が最後のKになります。どうすればa,bに保存されますか?おそらくif関数から出たときにおかしくなっています。
a,bがKになるところがわかりません。
回答4件
あなたの回答
tips
プレビュー