要求输入20个数,并删除这些数里的重复项。
现在这段代码的问题主要是 如果在数组中输入0,且0不在第一位,无法输出零
如:
PS:2到5行是输入,最后一行是结果,其余数字用于辅助编程
但如果0在第一位,就可以输出0
如:
代码如下:
#include<stdio.h>
int main()
{
int i,j,k=0,flag=0;
int b[20],c[20];
printf("plz input 20 nums\n");
for (i = 0; i < 20; i++)
{
scanf("%d", &b[i]);
}
for (i = 0; i < 20; i++)
{
c[i] = b[i];
}
for (i = 0; i < 20 && flag==0; i++)
{
if (b[i] == 0)
k = i;
flag++;
}
for (i=0;i<19; i++)
{
if (b[i] != 0)
for (j = i + 1; j < 20; j++)
{
if (b[i] == b[j])
{
b[j] = 0;
}
}
}
for (i = 0; i < 20; i++)
{
printf("%d ", b[i]);
}
printf("\n");
for (i = 0; i < 20; i++)
{
printf("%d ", c[i]);
}
printf("\n");
for (i = 0; i < 20; i++)
{
if (b[i] != 0)
printf("%d ", b[i]);
else if (b[i]==0 && i == k)
printf("%d ",c[k]);
}
return 0;
}
求带