C语言编程>第十三周 ① 请编写函数fun,该函数的的功能是:删除一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。

例题:请编写函数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");
}

输出运行窗口如下:
在这里插入图片描述

越努力越幸运!
加油,奥力给!!!

猜你喜欢

转载自blog.csdn.net/qq_45385706/article/details/111993974