c语言对a所指数组重的数据进行由大到小的排序

14.31以下程序中函数sort的功能是对a所指数组重的数据进行由大到小的排序voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i... 14.31
以下程序中函数sort的功能是对a所指数组重的数据进行由大到小的排序
void sort(int a[], int n) {int i,j,t;
for(i=0; i<n-1;i++) for(j=i+1;j<n;j++)
if(a[i]<a[j]) {t=a[i];a[i]=a[j];a[j]=t;} }
main() {int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(&aa[3],5); for(i=0;i<10;i++) printf("%d,",aa[i];printf("\n");}

程序运行后输出的结果是
1,2,3,4,5,6,7,8,9,10
为什么?
void sort(int a[], 是什么意思
{int aa[10]={1,2,3,4,5,6,7,8,9,10},是什么意思
sort(&aa[3],5); 是什么意思

14.33有以下程序
main() {char a[]={'a','b','c','d','e','f','g','h','\0',}; int i,j;
i=sizeof(a); j=strlen(a);printf("%d,%D\n",i,j);}

输出结果:9,8
char a[]={'a','b','c','d','e','f','g','h','\0',}; 是什么意思
i=sizeof(a);是什么意思
j=strlen(a);是什么意思
展开
 我来答
lihhub
推荐于2016-05-24 · TA获得超过109个赞
知道答主
回答量:127
采纳率:0%
帮助的人:84.8万
展开全部
在前面应该加上#include<stdio.h>
#include<stdio.h> /*输入输出函数都要用到这个库文件*/
void sort(int a[], int n) {int i,j,t;
for(i=0; i<n-1;i++) for(j=i+1;j<n;j++)
if(a[i]<a[j]) {t=a[i];a[i]=a[j];a[j]=t;} }
main() {int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(&aa[3],5); for(i=0;i<10;i++) printf("%d,",aa[i]);/*你上面那个程序在这里少了个")"*/
printf("\n");}
这运行后输出来的结果是1,2,3,8,7,6,5,4,9,10,
这个程序在个函数调用加排序问题
void sort(int a[], int n)这个函数是按大到小排序,而且只从参数a[]开始,比较n个数,int a[], int n表示定义里面的参数类型,a为整形数组,n为整数.
sort(&aa[3],5); 这一句表示将主函数中的参数传递给子函数void sort(int a[], int n),参数&aa[3]表示数组aa[3]的地址,5表示一个整数,在子函数中从aa[3]地址开始的5个数进行从大到小排序,aa[3]的地址是4那个位置.所以整个程序就是实现从4-8进行从大到小的排序.int aa[10]={1,2,3,4,5,6,7,8,9,10}是表示在主函数中定义aa整形数组大小为10且给它赋上初值,值为1,2,3,4,5,6,7,8,9,10.

14.33:
char a[]={'a','b','c','d','e','f','g','h','\0',}也是跟上面的一样定义字符数a且赋初值,'\0'是表示结束字符.
i=sizeof(a)是求数组a的长度.
j=strlen(a)也是求它的长度,不过这个不包括结束字符.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小速融田零上口2055
2006-04-14 · 超过20用户采纳过TA的回答
知道答主
回答量:155
采纳率:0%
帮助的人:0
展开全部
靠!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式