まず、私はこの記事の馬鹿みたいに見えると申し訳ありませんが、私は完全にCに新しいです。とにかく、私の問題は私がこの奇妙なエラーをYTのチュートリアルと私はホッケーで最高のプレーヤーを計算するプログラムを作ろうとしています。プレーヤーのIDの配列にどれくらいのゴールがあり、どれくらい多くのゴールをプレイしたのか、各プレーヤーはゲームでゴールを分けます。最後に、私は最高のスコアとプレイヤーIDをプリントアウトし、私はエラーを取得するいくつかの理由で、ここに私のコードです:サブスクリプションの値は配列でもポインタでもありません
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
int players[5] = {5, 3, 4, 2, 1};
int goals = {3, 2, 5, 4, 5};
int gamesPlayed = {1, 1, 3, 2, 2};
float ppg[5];
float bestPPG = 0.0;
int bestPlayer;
for (i=0; i<5; i++)
{
ppg[i] = (float)goals[i]/(float)gamesPlayed[i];
if (ppg[i] > bestPPG)
{
bestPlayer = players[i];
bestPPG = ppg[i];
}
}
printf("The best player was %d", bestPlayer);
return 0;
}
出力:コンパイラの出力を想定し
line: 16
error: subscripted value is neither array nor pointer nor vector
これらの行はエラーでました - エラーがOPは、コンパイラの設定を変更する必要があり、その後見られない場合。 –
私はOPが実際に言及した出力がcompulerエラーであることを理解しました。私はそれを反映するために私の答えを更新しました。 – reindeer
私は 'int goals = {3、2、5、4、5};を知っています;は間違っていて意味がありませんが、未定義の動作ですか?そうでない場合、「ゴール」は「3」であることが保証されていますか? –