程序功能:删去一维数组s中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
例 若一维数组中的数据是:2 3 3 3 3 4 4 4 4 4 10 10 10 10 13 13 15 15 18 18
输出结果:2 3 4 10 13 15 18
源程序:
#include <stdio.h>
int del(int s[],int n)
{
int i,j=1;
for(i=1;i<n;i++)
if(s[j-1]!=s[i])
s[j++]=s[i];//删除
return j;//返回下标
}
int main()
{
int s[]={2,3,3,3,3,4,4,4,4,4,10,10,10,10,13,13,15,15,18,18};
int i,m,n=sizeof(s)/sizeof(int);
for(i=0;i<n;i++)
printf("%d ",s[i]);
m=del(s,n);
printf("\n");
for(i=0;i<m;i++)
printf("%d ",s[i]);
printf("\n");
return 0;
}
Dev-C++运行结果: