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行后面加代码,机器是怎么知道那行代码是条件句判断成功才执行的?
RockenRoll
相关分类