18019815770 发表于 2020-11-24 18:31:32

找出数组中只出现过一次的值

#include <stdio.h>

int main (void)
{
        int a[] = {1,2,3,4,5,1,2,3,4};
        int i,j,sz,cnt;


        sz = sizeof a / sizeof a;

        for(i = 0; i < sz ; ++i)
        {        cnt = 0;
                for(j = 0; j < sz ; ++j)
                        if(a ==a)       
                                cnt++;
                if(cnt == 1)
                        printf ("%d\n", a);
        }


        printf("%d\n", sz);
        return 0;
}

我这运行结果是 5,9.很纳闷9是从哪里来的? 有大神给看看吗?

jackz007 发表于 2020-11-24 18:40:21

      sz = sizeof a / sizeof a;
. . . . . .
      printf("%d\n", sz);
      a[]是一个有 9 个元素的数组,sz = 9 啊

18019815770 发表于 2020-11-24 18:43:56

jackz007 发表于 2020-11-24 18:40
a[]是一个有 9 个元素的数组,sz = 9 啊

我靠,没注意到输出了一个sz了。

黎明gg 发表于 2020-11-25 11:11:21

你函数中有sz算出的值为9,在你函数结尾有printf打印出sz的值,所以那个9就是你那个sz的值
页: [1]
查看完整版本: 找出数组中只出现过一次的值