Problem G: C语言习题 n个数逆序
Time Limit: 1 Sec Memory Limit: 128 MBDescription
将n(n<20)个数按输入时顺序的逆序排列,用函数实现。
Input
n 和 n个整数
Output
逆序输出,空格分开
Sample Input
10
1 2 3 4 5 6 7 8 9 0
Sample Output
0 9 8 7 6 5 4 3 2 1
HINT
主函数已给定如下,提交时不需要包含下述主函数
/* C代码 */
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;
}
/* C++代码 */
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;
}
/* C代码 */
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;
}
/* C++代码 */
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;
}
代码实现:
void sort (int *p,int m)
{
int i,j;
int b[20];
for(i=m,j=0;j<m;i--,j++)
b[j]=*(p+i-1);
for(i=0;i<m;i++)
*(p+i)=b[i];
}
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;
}