私のコードでは:
int nAlunos, nNotas;
/*size input*/
scanf("%d", &nAlunos);
scanf("%d", &nNotas);
/*arrays*/
int ordenador [nAlunos];
char listaNomes [nAlunos][16];
float listaNotas [nAlunos][nNotas+1];
/*non-arrays*/
int i, k;
/*input*/
for(i = 0; i < nAlunos; i++){
scanf("%s", listaNomes[i]);
for(k = 1; k <= nNotas; k++){
scanf("%f", &listaNotas[i][k]);
}
}
/*sum of grades / number os grades for each person*/
for(i = 0; i < nAlunos; i++){
listaNotas[i][0] = 0;
for(k = 1; k <= nNotas; k++)
listaNotas[i][0] += listaNotas[i][k];
listaNotas[i][0] /= nNotas;
}
/*process order on vector*/
for(i = 0; i < nAlunos; i++){
menor = 1111;
for(k = i; k < nAlunos; k++)
if (listaNotas[k][0] < menor)
menor = listaNotas[k][0];
for(k = i; listaNotas[k][0] != menor; k++){}
ordenador[k] = i;
ordenador[i] = k;
}
for(i = 0; i < nAlunos; i++)
printf("%d", ordenador[i]);
}
ユーザーからデータのテーブルを埋めようとしていますが、このクラスにはポインターを使用できない可能性があります。
提示されたデータを受け取る必要があります。
String1
float1 float2...
String2
.
.
.
実行すると、最後の入力が完了するまでうまく機能します。その後、実行が中断され、セグメンテーション違反が返されます: 11
不適切なメモリにアクセスしている可能性がある場所を見つけようとしましたが、見つからないため意味がありません。