数组中去掉重复的数字,计算剩下的数字的有几个,我怎么写的不对了?

#include "stdio.h"
void main()
{
int nums[10]={1,2,1,2,3,3,5,6,7,7};
int i;
int n=1;int j=1;
for(i=1;i<10;i++)
{
for(j=0;j<i;j++)
{
if (nums[i]!=nums[j]) n++;
}
}
printf("%d",n);
}

if (nums[i]!=nums[j]) n++;
这里不对,一次比较不同不能说明这个数字就是不重复的。

#include "stdio.h"
void main()
{
    int nums[10]={1,2,1,2,3,3,5,6,7,7};
    int i;
    int n=1;int j=1;
    for(i=1;i<10;i++)
    {
        for(j=0;j<i;j++)
        {
            if (nums[i] == nums[j]) break;
        }
        if(i == j)
            n++;
    }
    printf("%d",n);
}

6

是不对啊:你在计算数组中不同的数对的个数,而不是计算不同的数个数

正确代码如下:
void main()
{
int nums[10]={1,2,1,2,3,3,5,6,7,7};
int i;
int n=1;int j=1;
for(i=1;i<10;i++)
{
for(j=0;j<i;j++)
{
if (nums[j]==nums[i]) break;//判断是否重复,重复跳出循环
}
if(j==i)n++;//没重复,n++
}
printf("%d",n);
}