关于数组去重的思路
现有一个非减序(即前面的元素值不会比后面元素的数值大)排列的一维数组,其中有若干元素是重复的。编程将重复元素删除掉若干个,仅保留1个,使数组中没有重复元素。
(一般情况下数组中的数据是无序的,可以先用冒泡排序将数据排成由小到大的情况)
#include<stdio.h>
int main(){int M,n,i,j,k;int a[1005];scanf("%d",&M); //表示有几组数据输入 for(i=0;i<M;i++){scanf("%d",&n); //数组有多少个元素 for(j=0;j<n;j++){scanf("%d",&a[j]); //输入一个数组 }printf("%d",a[0]); //打印第一个数据,控制格式 for(k=0;k<n-1;k++) {if(a[k]<a[k+1]) //两两比较,如果后面的数大于前面则输出后边一个,这样重复的数据(两数相等的情况)不会输出printf(" %d",a[k+1]); }putchar('\n'); //每个数组输入后换行 }
}