吉利美人豹多少钱:一道C语言编程题,看不懂,求解释

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/03 14:43:55
用选择法对10个整数按由大到小的顺序排序:
程序如下:
#include <stdio.h>
main()
{void sort(int x[],int n);
int *p,i,a[10];
p=a;
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++;}
}
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;
}
}
请解释一下各行的作用,各行是什么意思,谢谢!

#include <stdio.h> //头文件
main()
{
void sort(int x[],int n); 声明函数
int *p,i,a[10];
p=a; p指向a的第一个元素
for(i=0;i<10;i++)
scanf("%d",p++); 输入10个整数,作为a[10]的值
p=a; q指向a的首地址
sort(p,10); 对a的10个元素进行排序
for(p=a,i=0;i<10;i++)
{printf("%d",*p);p++;} 打印出a的所有数值
}
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; 如果后一个元素比前一个大,则k的值为最大元素的序号
if(k!=i)如果后一个比前一个大
{t=x[i]; t是临时中间变量,把x[i]的值存在t中
x[i]=x[k]; 把x[k]的值赋给x[i],即后者比前者大的情况下,交换两者的位置
x[k]=t;把先前x[i]的值赋给x[k]
}
}

void sort(int x[],int n);
int *p,i,a[10];
p=a;
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++;}
}
定义数组 及指向数组的指针
输入数值 并输出sort
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;
}
对数值进行起泡排序