解析
首先 想目的 要删除相同的数,可以是比较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
从第几位开始。