请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

assert报错

https://img1.sycdn.imooc.com//szimg/5fe876b309c404f904220408.jpg

老师我这里随机生成10个元素的数组,第一次用Seclection,第二次用insertionSort

没用assert(isSorted)能编译成功,

https://img1.sycdn.imooc.com/szimg/5fe87720098cbdf105360702.jpg

打开注释assert(isSorted(arr,l,n));后显示错误,

为什么我没用assert之前可以正常排序出来,assert后却一直显示错误。


我这里 isSorted好像也没错啊

template<typename T>

bool isSorted(T arr[],int l, int n)

{

for (int i =l; i < n; i++)

{

if (arr[i]>arr[i+1])

return false;

}

return true;

}


正在回答 回答被采纳积分+3

2回答

liuyubobobo 2020-12-27 20:28:16

所以说明 assert 失败了呀,所以说明 issorted 返回的是 false 呀。

0 回复 有任何疑惑可以回复我~
liuyubobobo 2020-12-27 20:05:21

说明你的排序算法的逻辑是错误的,没有正确的对数组进行排序。把排序后的结果打印出来,看看是不是这样?如果是这样,检查一下自己的排序算法逻辑哪里有问题?

继续加油!:)

0 回复 有任何疑惑可以回复我~
  • 提问者 好嗨难 #1
    老师你看我第一次打印没用assert,使用prtintARR能正常排序出来啊,selection Sort和insertion sort都能打印出同样的结果,但是就是不能通过assert
    回复 有任何疑惑可以回复我~ 2020-12-27 20:10:38
  • liuyubobobo 回复 提问者 好嗨难 #2
    所以说明 assert 失败了呀,所以说明 issorted 返回的是 false 呀。
    回复 有任何疑惑可以回复我~ 2020-12-27 20:30:32
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信