将n个数按输入时顺序的逆序排序,用函数实现 但要求在调用函数用数组名作为函数实参

将n个数按输入时顺序的逆序排序,用函数实现
但要求在调用函数用数组名作为函数实参请各位大神帮帮忙

#include<stdio.h>
#define maxn 100

//第一个参数是数组,第二个参数是数组长度 
void print(int n[], int len){
int i;
for(i=len-1; i>=0; i--) printf("%d ", n[i]);
printf("\n");
}

int main(){
int n, i, a[maxn];
scanf("%d", &n);
for(i=0; i<n; i++) scanf("%d", &a[i]);
print(a,n);
return 0;
}

运行效果:

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-03
供参考……
void sort(char *p,int m){
int i;//声明int型变量i
char temp,*p1,*p2;//声明char型变量temp和char型指针变量p1及p2
for(i=0;i<m/2;i++){ //m是数组长度,/是取整除;所以当m是奇数时,m/2是中间那一位的前一位,
//当m是偶数时,m/2是前一半的最后一位;for(i=0;i<m/2;i++)是从第一位
//开始逐个循环到m/2的前一位(即所有数的前一半)
p1=p+i;//p是数组第0位,在循环中p1=p+i将使p1依次指向p[0],p[1],p[2]...p[m/2-1]
p2=p+(m-1-i); //同上理,p2=p+(m-1-i)将使p2依次指向数组的倒数第1位,倒数第2位,倒数第3位...
//直到以数组中间为界与p[m/2-1]相对的那一位
temp=*p1;//以下三句是将p1和p2指向的内容交换,实际上就是将数组的p[0]与p[m-1]交换,p[1]与
//p[m-2]交换,p[2]与p[m-3]交换...这就达到了倒序目的……
*p1=*p2;//
*p2=temp;//
}
}本回答被网友采纳
第2个回答  2016-06-11
void reverse(int a[],int n)
{
int i,t;
for(i=0;i<=n/2;i++)
{
t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;
}
}
void main()
{
int a[7],i;
for(i=0;i<7;i++)
scanf("%d",&a[i]);
reverse(a,7);
for(i=0;i<7;i++)
printf("%d,",a[i]);
}
相似回答