#include<stdio.h>
int main()
{
int a[15]= {1,4,3,4,4,2,3,5,3,2,5,4};
int n=0,i,j,k,m=15;
for(i=0; i<m-n; i++)
{
for(j=i+1; j<m-n; j++)
if(a[j]==a[i])
{
for(k=j; k<m-n; k++)
a[k]=a[k+1];
n++;
j--;
}
}
for(i=0; i<m-n; i++)
printf("%3d",a[i]);
printf("\nA total of %d data entries were deleted",n);
return 0;
}
数组初始化:
int a[15] = {1, 4, 3, 4, 4, 2, 3, 5, 3, 2, 5, 4};
数组
a
被初始化为包含 15 个整数的数组。外层循环:
for(i = 0; i < m - n; i++)
外层循环用于遍历数组中的每个元素,其中
m
是数组长度,n
是删除的元素计数器。内层循环:
for(j = i + 1; j < m - n; j++)
内层循环从当前元素的下一个元素开始,用于与当前元素比较,查找重复项。
重复元素检测:
if(a[j] == a[i])
如果发现重复元素,进入以下步骤。
删除重复元素:
for(k = j; k < m - n; k++) a[k] = a[k + 1];
使用循环将重复元素之后的元素依次前移,覆盖重复的元素。
计数器递增和内层循环控制:
n++; j--;
递增删除元素的计数器,并将内层循环的控制变量
j
减一,以确保下次循环检查相同的数组索引。打印修改后的数组:
for(i = 0; i < m - n; i++) printf("%3d", a[i]);
打印修改后的数组,只打印不包含重复元素的部分。
打印删除的元素数量:
printf("\n总共删除了 %d 个数据项", n);