C语言二维数组中删除数组中的重复元素

从键盘输入一个int a[5][10]得二维数组,输出数组中不重复的元素的个数,并且输出最后清楚重复后的数组
统计数组中不重复元素的个数

第1个回答  推荐于2017-12-15
简单地统计重复元素和不重复元素,可以用1维数组。
#include<stdio.h>
void main()
{
int i,j,k;
int a[50];
int b[50],c[50];
int n,flag=0;
for (i=1;i<50;i++) c[i]=0;
printf("Please enter 50 data\n");
for (i=0;i<50;i++) scanf("%d",&a[i]);
n=0;
b[n]=a[0]; c[n]=1; n++;
for (i=1;i<50;i++){
for (k=0;k<n;k++){
if (a[i] == b[k]) {c[k]=c[k]+1; flag=1;break;}
}
if (flag == 0) {b[n] =a[i];c[n]=1;n++;} else {flag = 0;};
}
for (i=0;i<50;i++){
if (c[i]==1) printf("%d ",b[i]);
}
printf("\n=============\n");
for (i=0;i<50;i++){
if (c[i]>1) printf("%d -- %d\n",b[i],c[i]);
}
}

--------------------
“删除数组中的重复元素” 不知道 是什么意思。
数组单元是连续分配单元的。即使是动态分配的单元,也不好从当中删去。

动态分配的单元,可以用 realloc 增加分配单元 和 减少分配单元。但只能从尾部做起,单元连续。本回答被提问者采纳
相似回答