编写一个已经从小到大排好序的一维数组目的是把里面重复的删除例如原来的数组是
2 2 2 3 3 4 5 5 6 6 6 6 7 8 9 10 10,程序运行完为2 3 4 5 6 7 8 9 10,我自己写出来了,但是不知道哪里出错了,求各位大神帮帮忙
int i;
n=0;
for(i=0;i<N;i++)
{
if(a[i]<a[i+1])
{a[n]=a[i];n++;}
}
return n;
}
这里的a数组是题目给出来的,N是a数组里面元素个数,n是程序结束后a数组里面还有多少个元素。在线等,谢谢!

c语言编程问题,编写函数实现给定功能
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
6条回答 默认 最新
- hpu刘 2017-08-01 08:48关注
循环到数组最后一位会发生越界错误,需要对最后一位单独判断,试试下面的:
int i;
n=0;
for(i=0;i<N-1;i++)
{
if(a[i]<a[i+1])
{a[n]=a[i];n++;}
}
if(a[N-2]<a[N-1])
a[n]=a[N-1];
n++;
return n;
}本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报