Per favore fai riferimento alla sfida di hackerrank this se puoi.Trova il numero intero solitario in un array
Il problema è trovare il numero intero solo in un array, dato che un array consiste di sole coppie tranne un solo numero intero.
Il problema è con questo test
9
4 9 95 93 57 4 57 93 9
9 è dimensione dell'array e sotto è la matrice
Vedere la parte di codice evidenziato da // ------
Se metto scanf ("% d", & n) sopra il codice arr arr nn funziona bene, ma dà risultati orribili al contrario. Si prega di darmi una mano
#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;
}
Come può sapere quanto deve essere grande l'array (ad esempio, che "n" è) prima che "n" sia inizializzato? –
Ma perché funziona su 3 casi di test su 4? – piby180
Si prega di pensare a questo te stesso: 'int arr [n]; scanf ("% d", &n); 'Si definisce una matrice di dimensioni n e n ha il valore [niente qui], e quindi si scansiona la dimensione ... (A proposito: se si devono scrivere commenti come:' // n è la dimensione dell'array, i è la variabile contatore ', quindi i nomi delle variabili non sono abbastanza significativi, li cambia in qualcosa come 'counter e size o arraySize') – Rizier123