...输入一组整数(以-1代表结束)到一个一维数组中,删除该一维数组中重...
发布网友
发布时间:2024-10-02 22:16
我来回答
共1个回答
热心网友
时间:2024-10-02 22:36
#include <stdio.h>
int main(void)
{
int i, j, k;
int rep = 0; //用于计算重复元素
int arry_size; //输入元素的个数 即数组大小
int arry[20]; //默认最多输入20个元素
printf("input: ");
fflush(NULL); //“input:”输出
for(i=0 ;; i++)
{
scanf("%d", arry+i);
if(arry[i] == -1)
{
arry_size = i; //输入为-1 得到数组大小
break;
}
}
for(i=1; i<=arry_size; i++) //i=1 因为第一个元素不可能有重复
{
for(j=0; j<i; j++)
{
if(arry[i] == arry[j]) //循环比较前面的元素 arry[i]为当前要判断的元素 arry[j]为arry[i]前面的元素
{
rep++; //有重复 加一个
for(k=i; k<arry_size; k++) //有重复这个元素不要了 后面的元素顶上
arry[k] = arry[k+1]; //arry[k]为当前重复的元素,arry[k+1]为后面顶上的元素
i--; //由于后面元素顶上 i的值不用增加
arry_size--; //重复元素不要了 数组大小-1个
break;
}
}
}
printf("There are %d reduplicate elements!\n", rep);
for(i=0; i<=arry_size; i++)
printf("%d ", arry[i]);
printf("\n");
return 0;
}