#include <stdio.h>
//每找到一个重复的元素,则最末尾前移一位,去重范围缩小一位
//找到重复元素后,此时数组下标之后的元素向前移一位
//程序后,数组中最右边的值是原数组最右边的值
main()
{
//int a[]={1,1,1,1,2,2,2,2,2,3,4,5,5,6,7,7,8,8,8,9,9,10,10,12};
int a[]={100,100,87,87,87,76,54,54,34,34,34,21,21,21,20,9,8,8,8,8,7,7,6,6,6,6,1};
int len=sizeof(a)/sizeof(a[0]);
int i,j,k,m=len;
for(i=0;i<len;i++)
{
for(j=i+1;j<len;j++)
if(a[i]==a[j])
{
for(k=j;k<len-1;k++)
{
a[k]=a[k+1];
}
len--;//整个数组去重范围缩小
j--;//重置到上一次的去重起始位置
}
}
for(i=0;i<len-1;i++)
printf("%d ",a[i]);
printf("%d",a[i]);
getchar();
}
#include <stdio.h>
//从第二个整数开始与第1个整数比较,如果不相等则替换a[j],j++,
main()
{
//int a[]={100,100,87,87,87,76,54,54,34,34,34,21,21,21,20,9,8,8,8,8,7,7,6,6,6,6,1};
int a[]={1,1,1,1,2,2,2,2,2,3,4,5,5,6,7,7,8,8,8,9,9,10,10,12};
int i,j,len=sizeof(a)/sizeof(a[0]);
j=1;
for(i=1;i<len;i++)
{
if(a[j-1]!=a[i]) a[j]=a[i],j++;
}
for(i=0;i<j;i++)
printf("%d ",a[i]);
getchar();
}
#include <stdio.h>
//每找到一个重复的元素,则最末尾前移一位,去重范围缩小一位
//找到重复元素后,此时数组下标之后的元素向前移一位
//程序后,数组中最右边的值是原数组最右边的值
main()
{
//int a[]={1,1,1,1,2,2,2,2,2,3,4,5,5,6,7,7,8,8,8,9,9,10,10,12};
int a[]={100,100,87,87,87,76,54,54,34,34,34,21,21,21,20,9,8,8,8,8,7,7,6,6,6,6,1};
int len=sizeof(a)/sizeof(a[0]);
int i,j,k,m=len;
for(i=0;i<len;i++)
{
for(j=i+1;j<len;j++)
if(a[i]==a[j])
{
for(k=j;k<len-1;k++)
{
a[k]=a[k+1];
}
len--;//整个数组去重范围缩小
j--;//重置到上一次的去重起始位置
}
}
for(i=0;i<m-1;i++)
printf("%d ",a[i]);
printf("%d",a[i]);
getchar();
}