C语言!这道题的执行顺序我有些问题!谁帮我看看

来源:百度知道 编辑:UC知道 时间:2024/05/31 11:51:32
#include<stdio.h>
main()
{int i=0,j=0,a[10],temp,k=0;
printf("请输入十个数");
for(i=0;i<10;i++)
scanf("%d",&a[i]);

for(i=0;i<9;i++)
{ k=i;
for(j=k+1;j<10;j++)
if(a[j]>a[k])k=j;
temp=a[i],a[i]=a[k],a[k]=temp;
}
for(i=0;i<10;i++)
printf("%4d",a[i]);

if(a[j]>a[k])k=j;这个执行完后是往下执行temp=a[i],a[i]=a[k],a[k]=temp;呢?还是继续执行内层循环的j++然后再执行if(a[j]>a[k])k=j;呢?

为什么

继续执行内层循环的j++然后再执行if(a[j]>a[k])k=j;呢?

for 循环 只会执行 后面一条语句的。

想要执行多条就要用 { } 包含。

在这个程序的意思是, 找到第I 大的数, 把他换到第I 个位置,

交换是在 找到 k 后执行的