Пожалуйста, обратитесь к this hackerrank challenge, если можете.Найти одиночное целое число в массиве
Проблема заключается в том, чтобы найти одиночное целое число в массиве, поскольку массив состоит из только пар, кроме одного одиночного целого.
Проблема с этим тестом
9
4 9 95 93 57 4 57 93 9
9 является размером массива и ниже является массив
увидеть часть коды подсвечивается // ------
Если я устанавливаю scanf («% d», & n) выше, код int arr [n] работает нормально, но дает ужасные результаты в обратном порядке. Пожалуйста, помогите мне
#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;
}
Как узнать, насколько велик массив (т. Е. Что такое «n») до инициализации «n»? –
Но почему он работает для 3 тестовых случаев из 4? – piby180
Пожалуйста, просто подумайте об этом сами: 'int arr [n]; scanf ("% d", &n); 'Вы определяете массив размером n и n имеет значение [ничего здесь], а затем вы сканируете размер ... (BTW: Если вам нужно писать комментарии, например:' // n - размер массива, i - переменная-счетчик, тогда ваши имена переменных не имеют достаточного значения, изменяют их на что-то вроде 'counter и size или arraySize') – Rizier123