m0_57256754 2021-04-14 20:35 采纳率: 50%
浏览 18
已采纳

菜鸟想问问,是先执行循环体再判断if,还是边循环边判断? (下面是老师上课讲的排序改进后更高效方案)

菜鸟想问问,是先执行循环体再判断if,还是边循环边判断? (下面是老师上课讲的排序改进后更高效方案) #include int main() {int i,j,a[6]={5,4,7,6,2,3},t,p; for(i=0;i<=4;i++) {p=i; for(j=i+1;j<=5;j++) if(a[p]>a[j]) p=j; if(p!=i) {t=a[i];a[i]=a[p];a[p]=t;}} for(i=0;i<6;i++) printf("%d ",a[i]); return 0; }
  • 写回答

1条回答 默认 最新

  • 爱晚乏客游 2021-04-14 22:46
    关注

    你这排版看吐了,提问题请用代码段写入代码。初学就老老实实的把{}补上,别偷懒,加上去之后,你就不会这么问是什么先执行了。给你整理下,从上到下,有语句后面{}的先执行{}里面的内容

    int main()
    {
        int i,j,a[6]= {5,4,7,6,2,3},t,p;
        for(i=0; i<=4; i++)
        {
            p=i;
            for(j=i+1; j<=5; j++)
            {
                if(a[p]>a[j])
                {
                    p=j;
                }
            }
            if(p!=i)
            {
                t=a[i];
                a[i]=a[p];
                a[p]=t;
            }
        }
        for(i=0; i<6; i++)
        {
            printf("%d ",a[i]);
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 Qt下使用tcp获取数据的详细操作
  • ¥15 idea右下角设置编码是灰色的
  • ¥15 全志H618ROM新增分区
  • ¥20 jupyter保存图像功能的实现
  • ¥15 在grasshopper里DrawViewportWires更改预览后,禁用电池仍然显示
  • ¥15 NAO机器人的录音程序保存问题
  • ¥15 C#读写EXCEL文件,不同编译
  • ¥15 MapReduce结果输出到HBase,一直连接不上MySQL
  • ¥15 扩散模型sd.webui使用时报错“Nonetype”
  • ¥15 stm32流水灯+呼吸灯+外部中断按键