#include<stdio.h>
int main()
{
void sort(int x[],int n);
int i,*p,a[10];
p=a;
printf("please enter 10 integer numbers:");
for(i=0;i<10;i++)
scanf("%d",p++);
p=a;
sort(p,10);
for(p=a,i=0;i<10;i++)
{
printf("%d ",*p);
p++;
}
printf("\n");
return 0;
}
void sort(int x[],int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(x[j]>x[k])
k=j;
if(k!=i)
{
t=x[i];
x[i]=x[k];
x[k]=t;
}
}
}
外循环内嵌套的for循环里面的k=j是什么意思;然后就是内循环到哪里结束了,是到k=j;就结束了还是?
希望用//写注释说明一下,非常感谢。。。
谢谢 你的回答非常详细 和那个精辟哥一样厉害 再帮我一下 和他同样的问题 你看一下
你好,你的那个“确实”太精辟了!还有几个问题,麻烦了,问题1、我觉得第内嵌的for循环只包括
for(j = i + 1;j x[k]) k = j;
外循环的第一次(i=0)结束后,再进行
if(k!=i)
{
t=x[i];
x[i]=x[k];
x[k]=t;
}
是这样吗?
问题2:你是怎么判断一个循环的结束的,就好比这道题内嵌的这个循环。
多谢。
1、是的。
2、外循环遍历n - 1个元素,内循环每次都比前一次循环少一次。
索引改变会改变数组元素中的值吗???!!!
本回答被提问者采纳