这个k有什么用?

1   #include <stdio.h>
2  int sort(int a[], int n)
3   {
4     int i,j,k,tmp;
5        for(i=0;i<n-1; i++)
6      {
7           k=i;
8         for(j=i;j<n;j++)
9               if(a[i]>a[j])
10                k=j;
11              tmp=a[k];
12             a[k]=a[i];
13            a[i]=tmp;
14   }
15  }
16  int main()
17  {
18    int a[10];
19     int i;
20     for(i=0; i<10; i++) scanf("%d", &a[i]);
21     sort(a,10);
22    for(i=0; i<10; i++) printf("%d\n", a[i]);
23     return 0;
24   }
上面这个代码是不能按照我想要的去运行的,但我把第9行改成if(a[k]>a[j])时就可按我想要得到去运行
问题一:第7行和第10行把i和j的值赋给k有什么作用?或者说为什么要加一个K?
问题二:当if条件句的内容没有用括号时,机器是怎么判断截至到哪里是属于if条件句的内容?如10-13行,如果我再在1行后面加代码,机器是怎么知道那行代码是条件句判断成功才执行的?

 

Toxic憧憬
浏览 1242回答 1
1回答

RockenRoll

if条件语句后不加大括号,默认执行第10行代码,11-13行的代码就跟if的判断没有关系了。那个k就不清楚了,这是你自己写的代码?
打开App,查看更多内容
随时随地看视频慕课网APP