前提・実現したいこと
別ファイルにある数字を読み込んでそれの最高値、最低値、平均値と最高値の和、最低値の和、平均値の平均を出力するプログラムを作りたいです。
具体的な出力結果は
「 Max Min Ave
Japanese 90 40 65
Mathmatics 80 70 75
Sumation 170 110 70 」
発生している問題・エラーメッセージ
プログラムを実行しても
Max Min Aveとしか表示されません。
エラーメッセージ
該当のソースコード
C
ソースコード
一応作成したファイルのソースコードも記しておきます。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<unistd.h>
int main(void){
FILE*file=fopen("text","w");
int j,m;
for(int i=1;i<=10;i++){
srand((unsigned)time(NULL));
j=(int)(rand()/(RAND_MAX+1.0)*100);
sleep(1);
m=(int)(rand()/(RAND_MAX+1.0)100);
sleep(1);
fprintf(file,"%3d\t%3d\n",j,m);
}
fclose(file);
return 0;
}
次に実行したいプログラムのソースコードです。
#include<stdio.h>
#include<stdlib.h>
int main(void){
FILEfile=fopen("text","r");
int j,m,Japanese,Mathmatics,ja=0,ji=100,ma=0,mi=100,c,d,e,f,g;
printf(" \tMax\tMin\tAve\n");
for(int i=1;1<=10;i++){
fscanf(file,"%d.%d",&j,&m);
if(ji>j) ji=j;
if(ja<j) ja=j;
if(mi>m) mi=m;
if(ma<m) ma=m;
}
c=(ja+ji)/2;
d=(ma+mi)/2;
e=ja+ma;
f=ji+mi;
g=(c+d)/2;
printf("Japanese \t%d\t%d\t%d\n",ja,ji,c);
printf("Mathmatics\t%d\t%d\t%d\n",ma,mi,d);
printf("Sumation \t%d\t%d\t%d\n",e,f,g);
fclose(file);
return 0;
}
試したこと
exit関数を記述すると何も行われなくなりました。おそらくfscanfで繰り返し読み込むことに失敗しているのではないかと思います。
補足情報(FW/ツールのバージョンなど)
Linux,C言語
vagrant ホストWindows10
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。