質問: 0; loop < 20; loop++) { do { printf("%d番目の人の点数を入力してください: ", loop + 1); scanf("%d", &data[loop]); } while (data[loop]<0 || 10
回答: ``` int score[11]; ``` ここで変数宣言するだけでは、score配列の「中身」は「不定」の状態であり、メモリ上の数値はめちゃくちゃなものが入っています。なので、そこに++で1を足しても、0からのカウントアップではなくめちゃくちゃな数字に1足されるだけです。 ``` int score[11] = {}; ``` Cではこう書くだけで配列の0初期化ができるので、これで0からのカウントアップになるはずです。 ### 訂正 すみません、上のコードはC++ではいけるのですが、純粋なCではコンパイルエラーになります。こう書いてください。 ``` int score[11] = {0}; ``` なんでこうなるのかという説明は、以下のページに詳しいことが書いてあります。