C语言中,如何用删除法删除数组中相同的数字

来源:百度知道 编辑:UC知道 时间:2024/05/22 14:17:33
例如一个具有10个元素的数组 1 3 3 2 5 1 1 5 6 6,删除相同元素后后变为 1 3 2 5 6,请大虾们帮下忙,最好给出全部程序,必须是删除法,例如发现a[0]==a[5],就用a[6]代替a[5],从而删除a[5]

main()
{ int i,j,t;
int a[10]={1,3,3,2,5,1,1,5,2,6};
t=a[0]; /*把第一个数赋给t*/
for(i=1;i<10;i++)
{
if (t==a[i]) /*判断是否有相同的*/
{for(j=0;j+i<9;j++)/*用循环进行删除*/
a[i+j]=a[i+j+1];/*后面的数替代前面的*/
a[9]=0;} /*后面补0*/
t=a[i+1]; /*把下一个数赋给t*/
}
for(i=0;i<10;i++)/*输出*/
printf("%d",a[i]);
}

void main()

{
int i,t,n=10; /*n为数组的体积*/
int a[10]={1,3,3,2,5,1,1,5,2,6};
for(int m=0;m<n;m++)
{
t=a[m];
for(i=m+1;i<n;i++)
{
if (t==a[i]) /*判断是否有相同的*/
{
for(int j=i+1;j<n;j++)a[j-1]=a[j];/*后面的数替代前面的*/
n--;
i--;
}
}
}
for(i=0;i<n;i++)printf("%d",a[i]); /*输出*/

}

#include <stdio.h>
#include &l