Ich mache eine Herausforderung auf HackerRank hat die Methode herausgefunden, aber es gibt einen kleinen Fehler, den ich nicht herausfinden kann. Weitere Informationen sind https://www.hackerrank.com/challenges/sparse-arraysArray [0] ändert sich während der Eingabe der "for" -Schleife, kann nicht herausfinden, warum
Grundsätzlich habe ich nur ein Problem mit arr [0]. Es speichert arr [0] als 'aba', und sobald es die erste for-Schleife erreicht, ändert es sich in 'ab'. Warum?
Eingang:
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 * test [q] vor q erklärt wurde gegeben! – Rand
Warum deklarieren Sie alle Ihre Variablen an der Spitze der Funktion? Das war in C89 notwendig, aber es war ... fast 30 Jahre. Es wurde als schlechte Übung für eine lange Zeit betrachtet. – Alexander
Wird dies im Kopf behalten, danke! Und als Antwort, ich bin ~ 3 Wochen alter Codierer – Rand