例题:请编写函数fun,该函数的的功能是:删除一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
例如,若一维数组中的数据是:
1,1,1,2,2,3,3,3,3,4
删除后,数组中的内容应该是:
1,2,3,4
请勿改动主函数main与其它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
代码如下:
#include<stdio.h>
#define M 100
int fun(int b[],int m)
{
int i,t,j=0,*p=b;
t=p[0];
for(i=0;i<=m;i++)
if(t==p[i])
;
else
{
b[j]=t;
t=p[i];
j++;
}
if(i>=m)
b[j]=t;
return j;
}
main()
{
int b[M]={
1,1,1,2,2,3,3,3,3,4},i,m=10;
FILE*out;
printf("The original data:\n");
for(i=0;i<m;i++)
printf("%3d",b[i]);
m=fun(b,m);
printf("\nThe data after deleted:\n");
out=fopen("outfile.dat","w");
for(i=0;i<m;i++)
{
printf("%3d",b[i]);
fprintf(out,"%d\n",b[i]);
}
fclose(out);
printf("\n");
}
输出运行窗口如下:
越努力越幸运!
加油,奥力给!!!