在 C 中遍历数组时陷入无限循环
Stuck in infinite loop while traversing an array in C
我正在尝试 运行 这个方法试图确定数组中不重复的数字数量,当我遍历数组时,我陷入了无限循环。 "Hello" 无限打印。为什么会这样?
// 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;
}
if (i = 0)
每次击中时将 i
设置为 0。应该是if (i == 0)
您可以通过每次在循环中打印 i
和 size
来查看发生了什么以及为什么从未满足条件。
我正在尝试 运行 这个方法试图确定数组中不重复的数字数量,当我遍历数组时,我陷入了无限循环。 "Hello" 无限打印。为什么会这样?
// 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;
}
if (i = 0)
每次击中时将 i
设置为 0。应该是if (i == 0)
您可以通过每次在循环中打印 i
和 size
来查看发生了什么以及为什么从未满足条件。