うまく実行されなくて困っています。
誰か教えてください。
1から10のかかれたtxtファイルをfscanfを用い,1から10までの
平均値を求めるプログラムを作成せよ.ただし,ファイルから読み込ん
だ値はmain関数の配列に収め,関数内では計算のみを行うこと.
code
#include <stdio.h>
#define n 10
int main (void)
{
FILE *fp;
int i;
int b;
int a[n];
double c;
if((fp = fopen("test.txt","r"))==NULL)
printf("\a ファイルをオープンできません。\n");
else{
for(i=0; i<n; i++)
fscanf(fp,"%d",a[n]) = EOF{
fclose(fp);
}
}
for(i=0; i<n; i++){
b+= a[n];
c =((double)b/(double)n);
printf("%.2f",c);
}
return(0);
}
/code
よろしくお願いします。
C言語について
Re: C言語について
うまく実行されなくて困っています。
誰か教えてください。
1から10のかかれたtxtファイルをfscanfを用い,1から10までの
平均値を求めるプログラムを作成せよ.ただし,ファイルから読み込ん
だ値はmain関数の配列に収め,関数内では計算のみを行うこと.
よろしくお願いします。
誰か教えてください。
1から10のかかれたtxtファイルをfscanfを用い,1から10までの
平均値を求めるプログラムを作成せよ.ただし,ファイルから読み込ん
だ値はmain関数の配列に収め,関数内では計算のみを行うこと.
#include <stdio.h>
#define n 10
int main (void)
{
FILE *fp;
int i;
int b;
int a[n];
double c;
if((fp = fopen("test.txt","r"))==NULL)
printf("\a ファイルをオープンできません。\n");
else{
for(i=0; i<n; i++)
fscanf(fp,"%d",a[n]) = EOF{
fclose(fp);
}
}
for(i=0; i<n; i++){
b+= a[n];
c =((double)b/(double)n);
printf("%.2f",c);
}
return(0);
}
Re: C言語について
Cの文法があまりにも滅茶苦茶です。
もう一度、if文やfor文の書き方を確認することをお勧めします。
あと、このプログラムは何の意味があるのでしょうか。
出力は 5.5 で固定なのでファイルの入力をする必要も、計算する必要も全く無いですし...
もう一度、if文やfor文の書き方を確認することをお勧めします。
#include <stdio.h>
#define n 10
int main (void)
{
FILE *fp;
int i;
int b;
int a[n];
double c;
if((fp = fopen("test.txt","r"))==NULL)
printf("\a ファイルをオープンできません。\n");
else{ //elseに対応するif文のブロック{ }がない
for(i=0; i<n; i++) //for(i=0; i<n; i++) と { の間に式は入れられない, しかも==の間違いでは?
fscanf(fp,"%d",a[n]) = EOF{ //EOFを検出するなら forループ ではくて while
fclose(fp);
}
}
for(i=0; i<n; i++){
b+= a[n]; //bの初期化をしていない
c =((double)b/(double)n);
printf("%.2f",c); //平均値の計算と表示は1回のはずなのにforループ内にある
}
return(0);
}
出力は 5.5 で固定なのでファイルの入力をする必要も、計算する必要も全く無いですし...
Re: C言語について
>関数内では計算のみを行うこと.
この課題の「関数」とはなんでしょうか。main関数だとすると、入出力ができないという
ことになりますので、恐らく、平均を求める関数を作成せよという問題なのではないでしょうか?
例えばプロトタイプ
double average(int data[],int n);
を作成せよ。って課題か。
この課題の「関数」とはなんでしょうか。main関数だとすると、入出力ができないという
ことになりますので、恐らく、平均を求める関数を作成せよという問題なのではないでしょうか?
例えばプロトタイプ
double average(int data[],int n);
を作成せよ。って課題か。
non
Re: C言語について
>平均値を求めるプログラムを作成せよ.ただし,ファイルから読み込ん
>だ値はmain関数の配列に収め,関数内では計算のみを行うこと.
C89以前またはC99以降限定ですが
double main ( void ) {
}
とすれば、「関数内では計算のみ」「平均値を求める」を満足したプログラムを作れます。
課題の解答として合格点に達するかどうかは知りませんが、
>平均値を求めるプログラムを作成せよ.ただし,ファイルから読み込ん
>だ値はmain関数の配列に収め,関数内では計算のみを行うこと.
は満足しています。
>だ値はmain関数の配列に収め,関数内では計算のみを行うこと.
C89以前またはC99以降限定ですが
double main ( void ) {
}
とすれば、「関数内では計算のみ」「平均値を求める」を満足したプログラムを作れます。
課題の解答として合格点に達するかどうかは知りませんが、
>平均値を求めるプログラムを作成せよ.ただし,ファイルから読み込ん
>だ値はmain関数の配列に収め,関数内では計算のみを行うこと.
は満足しています。
Re: C言語について
求めた平均値を戻り値とせよ、と書かれてないので特にトリッキーなことしなくて良いと思いますけど。
Re: C言語について
どこにも求めた平均値を表示しろとは書いていないので、表示はしなくていいのではないですか?sasaki さんが書きました:1から10のかかれたtxtファイルをfscanfを用い,1から10までの
平均値を求めるプログラムを作成せよ.ただし,ファイルから読み込ん
だ値はmain関数の配列に収め,関数内では計算のみを行うこと.
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: C言語について
修正しなければいけない所がありましたので修正しました。
もっとも重症だったのはfscanfの&aです。見つけるのに苦労しました。
#include <stdio.h>
#define n 10
int main (void)
{
FILE *fp;
int i;
int b=0;
int a[n];
double c;
for(i=0;i<n;i++)
a[i]=0;
fp = fopen("test.txt","r");
if(fp == NULL) {
printf("ファイルをオープンできません。\n");
}
else {
i=0;
while(i<n && fscanf(fp,"%d",&a[i]) != EOF)
i++;
}
for(i=0; i<n; i++)
b+=a[i];
c=(double)b/(double)n;
printf("%0.2f",c);
fclose(fp);
return(0);
}
Re: C言語について
私の趣味からすれば、
#define n 10
の n は N のように大文字にして欲しい。
printf("%0.2f",c);
これは、なぜ、0.2ですか?
ところで GaZAsA さんは、スレ主(sasaki)さん?
#define n 10
の n は N のように大文字にして欲しい。
printf("%0.2f",c);
これは、なぜ、0.2ですか?
ところで GaZAsA さんは、スレ主(sasaki)さん?
non