Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C中遍历数组时陷入无限循环_C_Loops_Infinite Loop - Fatal编程技术网

在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]);
而(i
if(i=0)
则会在每次点击时将
i
设置为0。如果(i==0)

您可以通过每次在循环中打印
i
size
来发现这一点,以查看发生了什么以及为什么该条件从未满足。

if(i=0)
i
在每次点击时设置为0。应该是
if(i==0)


您可以通过循环打印<代码> i < /> >和<代码>大小>代码>查看循环中的情况,以及为什么无法满足条件。

考虑打开编译器警告并认真对待它们。GCC使用<代码>墙>代码>选项。请考虑编译警告并采取。用GCC使用
-Wall
选项应该可以做到这一点。