键盘输入一个长度为10的int型数组,删除数组中重复出现的数据 如,原数组是: 1 4 2 3 4 1 2 5 5 9,输出:1 4 2 3 5 9
#include<stdio.h>
int main()
{
int i,j,k;
int n=10;
int a[10];
for(i=0;i<n;i++)
{
scanf("%d",&a[i]); //输入一个长度为10的int型数组
}
for(i=0;i<n-1;i++) //遍历数组每个数字
{
for(j=i+1;j<n;j++)
{
if(a[i]==a[j])
{
for(k=j;k<n-1;k++)
{
a[k]=a[k+1]; //若某数与其后数字相同,其后数字均前移一位
}
--n; //数字减少一个
--j; //a[j]为新值,需再次比较
}
}
}
for(i=0;i<n;i++)
{
printf("%d ",a[i]); //打印删除重复数据后的数组
}
return 0;
}
或:
#include "stdio.h"
int main(void)
{
int a[10],i,j;
for(i=0;i <10;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i <10;i++)
{
if(a[i]!=-1)
{
for(j=i+1;j <10;j++)
if(a[i]==a[j]) a[j]=-1; //若出现与a[i]相同字符,将其置为-1
}
}
for(i=0;i <10;i++)
if(a[i]!=-1) printf("%d ",a[i]); //打印非-1的数
return 0;
}
解析