
解析
首先 想目的 要删除相同的数,可以是比较if(a[i]==a[i+1])
也可以是按例题找规律
我倾向是比较大小 前一个数值是否小于后一个?
#include <stdio.h>
#define N 80
int fun(int a[], int n)
{
int i,j=1;
for (i = 1; i<n; i++)
{
while (a[j-1] < a[i])
{
a[j++] = a[i];
}
}
return j;
}
void main()
{
FILE *wf;
int a[N]={ 2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,10}, i, n=20;
printf("The original data :\n");
for(i=0; i<n; i++)
printf("%3d",a[i]);
n=fun(a,n);
printf("\n\nThe data after deleted :\n");
for(i=0; i<n; i++)
printf("%3d",a[i]);
printf("\n\n");
/******************************/
wf=fopen("out.dat","w");
for(i=0; i<n; i++)
fprintf(wf,"%3d",a[i]);
fclose(wf);
/*****************************/
}
运行结果

这题 需要注意的是i和j从第几位开始。
这篇博客探讨了如何使用C语言进行数组排序,并删除其中的重复元素。通过比较前后数值的大小来实现这一目标,文章强调了在处理过程中需要注意的起始位置问题。
3282

被折叠的 条评论
为什么被折叠?



