在C中遍历数组时陷入无限循环
我正在尝试运行这个方法,它试图确定数组中不重复的数字的数量,当我遍历数组时,我陷入了一个无限循环。“你好”是无限打印的。为什么会这样在C中遍历数组时陷入无限循环,c,loops,infinite-loop,C,Loops,Infinite Loop,我正在尝试运行这个方法,它试图确定数组中不重复的数字的数量,当我遍历数组时,我陷入了一个无限循环。“你好”是无限打印的。为什么会这样 // function to determine the amount of non repeated numbers int nonRepeatedNumbers(int arr[], int size) { int i = 0; int total = 0; printf("%d\n", arr[0]); while(i<
// function to determine the amount of non repeated numbers
int nonRepeatedNumbers(int arr[], int size)
{
int i = 0;
int total = 0;
printf("%d\n", arr[0]);
while(i<size-1){
printf("%s\n", "HEllo");
total++;
if (i = 0)
{
if (arr[i] != arr[i + 1])
{
total++;
}
}
else
{
if (arr[i] != arr[i + 1] && arr[i] != arr[i - 1])
{
total++;
}
}
i=i+1;
}
printf("%d\n", total);
return total;
}
//用于确定非重复数字数量的函数
整数非重复数(整数arr[],整数大小)
{
int i=0;
int-total=0;
printf(“%d\n”,arr[0]);
而(iif(i=0)
则会在每次点击时将i
设置为0。如果(i==0)
您可以通过每次在循环中打印i
和size
来发现这一点,以查看发生了什么以及为什么该条件从未满足。if(i=0)
将i
在每次点击时设置为0。应该是if(i==0)
您可以通过循环打印<代码> i < /> >和<代码>大小>代码>查看循环中的情况,以及为什么无法满足条件。考虑打开编译器警告并认真对待它们。GCC使用<代码>墙>代码>选项。请考虑编译警告并采取。用GCC使用
-Wall
选项应该可以做到这一点。