在数组中找到孤立的整数

pib*_*180 5 c arrays pointers scanf

如果可以的话,请参考这个 hackerrank挑战.

问题是在数组中找到孤独的整数,给定一个数组只包含一对,除了一个孤独的整数.

问题出在这个测试用例上

9
4 9 95 93 57 4 57 93 9
Run Code Online (Sandbox Code Playgroud)

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;
}
Run Code Online (Sandbox Code Playgroud)