Je fais un défi sur HackerRank a compris la méthode, mais il y a une légère erreur que je ne peux pas comprendre. Plus d'informations si nécessaire est https://www.hackerrank.com/challenges/sparse-arraysArray [0] change en entrant dans la boucle "for", ne peut pas comprendre pourquoi
Fondamentalement, j'ai seulement un problème avec arr [0]. Il stocke arr [0] en tant que 'aba', puis une fois qu'il atteint la première boucle, il devient 'ab'. Pourquoi?
Entrée:
4
aba
baba
aba
xzxb
3
aba
xzxb
ab
code:
int main() {
int i, j;
int n;
int q;
scanf("%d", &n);
char* arr[n];
char* test[q];
char* s;
int counter[q];
for (i = 0; i < q; i++) {
counter[i] = 0;
}
for (i = 0; i < n; i++) {
arr[i] = malloc(20);
scanf("%s", arr[i]);
}
scanf("%d", &q);
for (i = 0; i < q; i++) {
test[i] = malloc(20);
scanf("%s", test[i]);
}
for (i = 0; i < n; i++) {
for (j = 0; j < q; j++) {
if (strcmp(arr[i], test[j]) == 0) {
counter[j]++;
} else {
}
}
}
for (i = 0; i < q; i++) {
printf("%d\n", counter[i]);
}
return 0;
}
char * essai [q] a déclaré avant q a été donné! – Rand
pourquoi déclarez-vous toutes vos variables en haut de la fonction? C'était nécessaire en C89, mais ça fait ... près de 30 ans. Il a été considéré comme une mauvaise pratique pour un temps longggg. – Alexander
Gardera cela à l'esprit, merci! Et comme pour répondre, je suis codeur de ~ 3 semaine année – Rand