什么原因,求正确解答为什么存在死循环,地牛排堆成碟劫色第六配基地之更新破格
死循环的根本原因是第5行应该是i<10,你写成1<10了,永远满足,所以死循环。
但其它地方也有问题:
既然是倒序,那么第9行的比较就反了,应该是if(a[m] < a[m+1]),这样才是从大到小排序,将小的数向后交换
14行的输出应该是a[p]
输出也有问题,%d后面要加个空格,否则数字就连在一起了。
修改如下:
#include <stdio.h>
int main()
{
int a[10],n,m,i,temp,p;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(n=0;n<9;n++)
for(m=0;m<9-n;m++)
if(a[m] < a[m+1])
{
temp = a[m];
a[m] = a[m+1];
a[m+1] = temp;
}
for(p=0;p<10;p++)
printf("%d ",a[p]);
return 0;
}
第一处错误:
此处应该输出的是a[p],而非a[i]。
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!希望对题主有所帮助,可以的话,帮忙点个采纳!