#include<stdio.h>
int arr[12][5];
int score[12][5];
int n;
void chk(){
int score = 0;
for(int i=n-1;i>=0;i--){
for(int j = 0;j<5;j++){
scanf("%d",&(arr[i][j]));
}
}
for(int i = n-1;i>=0;i--){
for(int j=0;j<5;j++){
if(i==n-1)
score[i][j] = arr[i][j];
else{
int mx = score[i+1][j];
if(j>0 && score[i+1][j-1]>mx)
mx = score[i+1][j-1];
else if(j<4 && score[i+1][j+1]>mx)
mx = score[i+1][j-1];
score[i][j] = arr[i][j] + mx;
}
}
}
int mx_score = score[0][2];
if(score[0][1]>mx_score){
mx_score = score[0][1];
}
else if(score[0][3]>mx_score){
mx_score = score[0][3];
}
printf("%d",mx_score);
}
int main(){
int T;
scanf("%d",&T);
for(int i = 0;i<T;i++){
scanf("%d",&n);
chk(n);
}
return 0;
}
Compilation Fehler:Warum führt dieser Code zu einem Kompilierungsfehler? [C, Globale Variablen, 2D Array]
Subscripted value is not an array, pointer or vector.
Die Variable, die den Fehler verursacht score
ist. Ich verstehe nicht, warum arr
funktioniert gut, aber score
nicht. Und wie würdest du diesen Code besser schreiben?
Indented die richtig glaube ich
Eine Möglichkeit, den Code zu verbessern, besteht darin, ihn richtig einzurücken. –
Entschuldigung. – 4words
Während [edit] s zu der Frage aufgefordert werden, zusätzliche Informationen bereitzustellen, sind Änderungen, die die Frage ausreichend ändern, um eine bereits gepostete Antwort ungültig zu machen, nicht zulässig. In der Tat ist der Konsens, dass jeder Benutzer mit [Bearbeitungsberechtigungen] (http://stackoverflow.com/help/privileges/edit) solche Änderungen rückgängig machen sollte. Ich werde dies tun, kurz nachdem ich diesen Kommentar gepostet habe. Bitte beachten Sie, dass Sie dadurch nicht daran gehindert werden, eine Frage vollständig zu ändern, bevor Antworten gepostet werden. Wir würden uns freuen, eine [neue Frage] (http://stackoverflow.com/questions/ask) zu Ihrem neuen Problem zu beantworten. – Makyen