一道C语言编程题,看不懂,求解释

用选择法对10个整数按由大到小的顺序排序:程序如下:#include<stdio.h>main(){voidsort(intx[],intn);int*p,i,a[10]... 用选择法对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;
}
}
请解释一下各行的作用,各行是什么意思,谢谢!
展开
 我来答
丁丁爱璐璐
2006-06-30 · TA获得超过263个赞
知道小有建树答主
回答量:641
采纳率:0%
帮助的人:0
展开全部
#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]
}
}
蔡旭坤
2006-06-30 · TA获得超过3555个赞
知道大有可为答主
回答量:2842
采纳率:0%
帮助的人:2441万
展开全部
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;
}
对数值进行起泡排序
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式