什么原因,求正确解答

什么原因,求正确解答为什么存在死循环,地牛排堆成碟劫色第六配基地之更新破格

img

死循环的根本原因是第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;
}

第一处错误:

img


写错了,这个应该是i,你写成了1,循环永远成立,所以死循环了,也超时了。
第二处错误:

img

此处应该输出的是a[p],而非a[i]。

希望对题主有所帮助,可以的话,帮忙点个采纳!

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632