#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 erreur:Pourquoi ce code entraîne-t-il une erreur de compilation? [C, variables globales, tableau 2D]
Subscripted value is not an array, pointer or vector.
La variable qui provoque l'erreur est score
. Je ne comprends pas pourquoi arr
fonctionne bien, mais pas score
. Et comment écririez-vous ce code mieux?
indenté le bien que je pense
Une façon d'améliorer le code est de l'indenter correctement. –
Désolé, à ce sujet. – 4words
Bien que les modifications apportées à la question pour fournir des informations supplémentaires soient encouragées, les modifications qui modifient suffisamment la question pour invalider une réponse déjà publiée ne sont pas autorisées. En fait, le consensus est que tout utilisateur avec [modifier les privilèges] (http://stackoverflow.com/help/privileges/edit) devrait annuler ces modifications. Je le ferai peu après la publication de ce commentaire. Veuillez noter que cela ne vous empêche pas de changer complètement une question avant que les réponses ne soient postées. Nous serons heureux de répondre à une [nouvelle question] (http://stackoverflow.com/questions/ask) sur votre nouveau numéro. – Makyen