c语言对a所指数组重的数据进行由大到小的排序
发布网友
发布时间:2022-05-20 05:57
我来回答
共1个回答
热心网友
时间:2023-10-26 03:33
在前面应该加上#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)也是求它的长度,不过这个不包括结束字符.