C语言习题 n个数逆序
时间: 1ms 内存:128M
描述:
将n(n<20)个数按输入时顺序的逆序排列,用函数实现。
输入:
n 和 n个整数
输出:
逆序输出,空格分开
示例输入:
10
1 2 3 4 5 6 7 8 9 0
示例输出:
0 9 8 7 6 5 4 3 2 1
提示:
参考答案(内存最优[748]):
#include <stdio.h>
void sort (int *p,int m) // 将n个数逆序排列函数
{
int i;
int temp, *p1,*p2;
for (i=0; i<m/2; i++)
{
p1=p+i;
p2=p+(m-1-i);
temp=*p1;
*p1=*p2;
*p2=temp;
}
}
int main()
{
void sort (int *p,int m);
int i,n;
int *p,num[20];
scanf("%d",&n);
for (i=0; i<n; i++)
scanf("%d",&num[i]);
p=&num[0];
sort(p,n);
for (i=0; i<n-1; i++)
printf("%d ",num[i]);
printf("%d\n",num[n-1]);
return 0;
}
参考答案(时间最优[0]):
#include <iostream>
using namespace std;
void sort (int *p,int m) // 将n个数逆序排列函数
{
int i;
int temp, *p1,*p2;
for (i=0; i<m/2; i++)
{
p1=p+i;
p2=p+(m-1-i);
temp=*p1;
*p1=*p2;
*p2=temp;
}
}
int main()
{
void sort (int *p,int m);
int i,n;
int *p,num[20];
cin>>n;
for (i=0; i<n; i++)
cin>>num[i];
p=&num[0];
sort(p,n);
for (i=0; i<n-1; i++)
cout<<num[i]<<" ";
cout<<num[n-1]<<endl;
return 0;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。
