gpt4 book ai didi

c - 在数组中找到孤独的整数

转载 作者:太空狗 更新时间:2023-10-29 15:07:05 25 4
gpt4 key购买 nike

请引用this hackerrank 挑战,如果可以的话。

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

问题出在这个测试用例上

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 的范围问题中给出的是1 <= N < 100这是一个小的variable length array可以使用。但是你在这里做错了

int arr[n];   // n is uninitialized. Its value is indeterminate.
scanf("%d", &n);

你需要初始化n在将其用作数组大小之前

scanf("%d", &n);
int arr[n];

关于c - 在数组中找到孤独的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28264936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com