#include <stdio.h> #include <stdlib.h> #include <time.h> #define N 1000 int main(){ int i,sum,t,max; float average; int a[N]; printf("input number of students in Class="); scanf("%d",&t); max=a[0]; for(i=0;i<t;i++){ printf("input point of Student%d=",i+1); scanf("%d",&a[i]); } for(i=0;i<t;i++){ if(max<a[i]){ max=a[i]; } } printf("maximum point=%d\n",max); sum=0; for(i=0;i<t;i++){ sum=sum+a[i]; } average=(float)sum/(float)t; printf("average point=%f\n",average); return 0; } 問題点:乱数を発生させてa[i]=rand()%Nの式を入れようとしたが、どこに式を入れても 上手くいかなかった。 やってみたこと:とにかくいろいろな位置にa[i]=rand()%N_1を入れてみた
上手くいかなかったとは、どうなっているのでしょうか?期待する動作と現状発生している現象を明記してください。
乱数を入れているのに、自分で値を入力して平均・最高点数を求めるようになってしまうんです。
Cygwin上で実行しているのでしょうが、問題はCygwinに関することではないので、「Cygwin」タグは必要ないです。
わかりました
今度から気をつけます。
> 乱数を入れているのに、自分で値を入力して平均・最高点数を求めるようになってしまうんです。
scanf("%d",&a[i]); を a[i]=rand()%N に差し替えてもそうなるんですか?
はい
修正の後コンパイルしてないとか?
しました
scanf("%d",&a[i]); を a[i]=rand()%N に差し替えたのなら、
コード中に scanf("%d",&a[i]); は存在しないのだから
「自分で値を入力して平均・最高点数を求めるようになってしまう」わけがないのだが。
すみません。乱数にはなっていました。正しい値は出ませんでした。
「自分で値を入力して平均・最高点数を求めるようになってしまう」ではなかったのか...
回答1件
あなたの回答
tips
プレビュー