问题描述:输入已知数组,去掉数组中重复的元素,并生成新的数组。
要想实现这一操作,就要对输入数组的每一个数,检测其后是否出现相同的数,这只需一个简单的for循环。
然后,将无重复元素的数计入新的数组。
代码如下:
#include<stdio.h>
#define MAX_SIZE 1000//定义一个数组数量的上界
int main()
{
int n,i,j,k=0,condition=1;//n为a组个数,k为b组个数(初始为0)
//condition作为判定条件
int a[MAX_SIZE], b[MAX_SIZE];
scanf("%d", &n); //输入数组元素个数
for (i = 0; i <= n - 1; i++)
scanf("%d", &a[i]); //输入每个元素
for (i = 0; i <= n - 1; i++)
{ //对每个数,检测其之后的元素
for (j = i + 1; j <= n - 1; j++)
{
if (a[i] == a[j])
condition = 0; //发现重复,将判定归0
}
if (condition == 1)
{
b[k] = a[i]; //无重复,计入数组b
k++; //同时将b组个数加一
}
condition = 1; //一个循环结束,要将判定重新赋为1
}
for (i = 0; i <= k-1 ; i++)
printf("%d ", b[i]);
return 0;
}
输入:
8
1 2 2 3 4 4 4 4
输出:
1 2 3 4