Bitte beziehen Sie sich auf hackerrank Herausforderung, wenn Sie können.Finden Sie die einsame Ganzzahl in einem Array
Das Problem ist, die einsame Ganzzahl in einem Array zu finden, vorausgesetzt, ein Array besteht nur aus Paaren außer einer einsamen Ganzzahl.
Das Problem bei diesem Testfall ist
9
4 9 95 93 57 4 57 93 9
9 ist Größe Array und unten ist das Array
Siehe Teil des Codes durch // hervorgehoben ------
Wenn ich scanf ("% d", & n) über den int arr [n] Code setze, funktioniert das gut, aber es gibt schreckliche Ergebnisse umgekehrt. Bitte helfen Sie mir
#include <stdio.h>
int lonely_integer(int* a, int size);
int main(){
//n is size of array, i is counter variable
int n, i, result;
// ---------------------
int arr[n];
scanf("%d", &n);
// ---------------------
printf("%d\n", n);
for(i = 0; i < n; i++){
scanf("%d", &arr[i]);
}
result = lonely_integer(arr, n);
printf("%d", result);
return 0;
}
int lonely_integer(int* a, int size){
int i;
int res = 0;
for(i = 0; i < size; i++){
res = res^a[i];
}
return res;
}
Wie kann es wissen, wie groß das Array sein sollte (d. H. Was "n" ist), bevor "n" initialisiert wird? –
Aber warum funktioniert es für 3 Testfälle von 4? – piby180
Bitte denken Sie nur selbst darüber nach: 'int arr [n]; scanf ("% d", &n); 'Sie definieren ein Array der Größe n und n hat den Wert [nichts hier], und dann scannen Sie die Größe ... (BTW: Wenn Sie Kommentare wie:' // schreiben n ist die Größe des Arrays, i ist eine Zählervariable, dann sind Ihre Variablennamen nicht sinnvoll genug, ändern Sie sie in so etwas wie 'counter und size oder arraySize') – Rizier123