我正在尝试运行此方法,该方法试图确定数组中不重复的数字数量,并且在遍历数组时,我陷入了无限循环。 “ 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)
每次您将其设置为0。应该是i
[通过遍历循环每次打印if (i == 0)
和i
来查看发生了什么,以及为什么从未满足条件的原因,您可能已经发现了这一点。
不相关的建议:在末尾加上++而不是i = i + 1,您也可以使用-大小部分。第二个if似乎仅是一次运行一次,如果是,则将其放在循环之前,但是我不确定,但这就是我所看到的。
我不太了解C语言,但我希望这些有助于使代码看起来更好的有用技巧,并能以较小的方式为您提供帮助!