改变不了数组a的值,哪里错了
un函数功能是:删除一堆数组中所有相同的数,使之只剩一个。数组中的数已按有小到大排序,函数返回删除后数组中的个数;例如:
2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10
删除后
2 3 4 5 6 7 8 9 10
函数
#include <stdio.h>
#define N 80int fun(int a[], int n)
{
int i,b[20],k=0;
b[0]=a[0];
for(i=0;i<n;i++)
{
if(b[k]!=a[i])
{b[k+1]=a[i];
k++;}
}return k+1;
for(i=0;i<k;i++)
a[i]=b[i];
}
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);
/*****************************/
}