C语言编程问题,初学者,不太会,谢谢
编写一个函数,删去输入的一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。在主函数输入一个有序数组,接着调用该自定义...
编写一个函数,删去输入的一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。在主函数输入一个有序数组,接着调用该自定义函数,最后输出删除重复数据后的数组元素。
如:输入的数组元素为:9 9 9 8 6 6 0 0 0 -2 -2
打印的结果为:9 8 6 0 -2 展开
如:输入的数组元素为:9 9 9 8 6 6 0 0 0 -2 -2
打印的结果为:9 8 6 0 -2 展开
2个回答
展开全部
编写一个函数,删去输入的一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。在主函数输入一个有序数组,接着调用该自定义函数,最后输出删除重复数据后的数组元素。如:输入的数组元素为:999866000-2-2打印的结果为:9860-2
这个程序的实现是比较简单的。因为数组中的数已按由小到大的顺序排列了。所以,只要找到与前一个数不相等的数,此数才是“有效”的。扫描完整个数组——就可以进行输出了:
#include<stdio.h>
int main()
{ int i,j,n=11,a[11]={9,9,9,8,6,6,0,0,0,-2,-2};
for(i=j=1; j<n; j++)
{while(a[j]==a[i-1])j++;
a[i++]=a[j];
}
for(j=0;j<i-1;j++)
printf("%d ",a[j]);
return 0;
}
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询