c言語
1#include <stdio.h> 2#define NUMBER 80 /*人数の上限*/ 3int main(void) { 4 int num, i, tensu[NUMBER], bunpu[11], j; 5printf("人数を入力してください:"); 6do { 7 scanf("%d", &num); 8 if(num<0 || num>NUMBER) { 9printf("1〜%dで入力してください:", NUMBER); 10 } 11} while (num<0 || num>80); 12printf("%d人の点数を入力してください\n", num); 13for(i=0; i<num; i++) { 14 printf("%d番:", i+1); 15 do { 16 scanf("%d", &tensu[i]); 17 if(tensu[i]<0 || tensu[i]>100) { 18 printf("\a1〜100で入力してください:"); 19 } 20 } while(tensu[i]<0 || tensu[i]>100); 21 bunpu[tensu[i]/10]++; 22} 23printf("\n"); 24printf("---分布グラフ---\n"); 25for(i=0; i<=9; i++) { 26 printf("%d〜%d:", i*10, i*10+9); 27 for(j=0; j<bunpu[i]; j++) { 28 putchar('*'); 29 } 30 printf("\n"); 31} 32if(bunpu[10]) { 33 printf(" 100:"); 34 for(j=1; j<=bunpu[10]; j++) { 35 putchar('*'); 36 } 37} 38printf("\n"); 39 return 0; 40}
①上記のコードを実行すると、分布グラフで『0~9:*****・・・・・』のように無限ループしてしまいます。理由を教えてください。
②tensu[NUMBER]の部分ですが、[]の中は配列の要素数であると認識しております。NUMBERは人数の上限であり、変数tensuの要素数ではないと思うのですが、どうしてここにNUMBERを入れるのですか?要素数ならもう一つの変数numを入れるのが適切だと思います。ちなみにnumを入れるとエラーが出たので、おそらく[]の中に変数を入れるのはダメなんですよね。
二つ質問してしまってすみません。回答お願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/07 02:13
2020/08/07 02:21
2020/08/07 02:26