###前提・実現したいこと
あるC言語の入門書における、配列の分野での問題です。
0~10点の整数で点数をつけるテストで、20人分の点数を入力する。
入力された数値を元に、以下のような形で集計して表示させる。
1点 ○人
2点 ×人
・
・
10点 □人
###発生している問題・エラーメッセージ
エラーメッセージは出ませんが、上記における○や×といった数値が848993459のようにおかしくなります。他は大丈夫です。
解答があり、そこには自分よりもスマートな回答が載っていましたが、自分の回答ではどうしてできないのか分かりません。
###該当のソースコード
C
1#include <stdio.h> 2 3int main() { 4 int data[20]; 5 int score[11]; 6 int loop,loop2 ; 7 8 //1-20番目までの人のそれぞれの点数を入力 9 10 for (loop = 0; loop < 20; loop++) { 11 do { 12 13 printf("%d番目の人の点数を入力してください: ", loop + 1); 14 scanf("%d", &data[loop]); 15 } while (data[loop]<0 || 10<data[loop]); 16 } 17 //0-10の点数について、1-20番までの人を毎回照合。点数が一致する度にscore[点数]を1増やす。 18 19 for (loop2 = 0; loop2 < 11; loop2++) { 20 for (loop = 0; loop < 20; loop++) { 21 if (data[loop] == loop2) { 22 score[loop2]++; 23 } 24 } 25 } 26 27 //それぞれの点数について増やしたscore[点数]を表示 28 for (loop2 = 0; loop2 < 11; loop2++) { 29 printf("%d点は%d人です。\n", loop2 , score[loop2]); 30 } 31 32 return 0; 33}
###試したこと
###補足情報(言語/FW/ツール等のバージョンなど)
Visual Studio 2017 RC Community
C言語
Windows7
回答7件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/15 04:58
2017/02/15 05:00
2017/02/15 05:14