当前位置: 代码迷 >> 综合 >> 1999-逆序排列
  详细解决方案

1999-逆序排列

热度:62   发布时间:2023-12-29 15:30:56.0

【C系列5.14】指针专题之逆序排列 1999

Time Limit:  1 s      Memory Limit:   32 MB
Submission:105     AC:60     Score:18.07

 

Description

Alex又遇到了一个新问题:将n个数按输入时顺序的逆序排列。

Input

输入包含多组测试数据,每组测试数据含两行。

第一行包含一个正整数N(N<100),接下去一行是N个数字,每个数字的范围是0到100。

Output

输出这n个数字的逆序排列。

Samples

input:
5
1 3 2 1 5
output:
5 1 2 3 1

下附AC代码:

#include <stdio.h>
void reverse(int *p, int m);
int main() {int i, n;int *p, a[10000];while (scanf("%d", &n) != EOF) {for (i = 0; i < n; i++) {scanf("%d", &a[i]);}p = &a[0];reverse(p, n);for (i = 0; i < n; i++) {printf("%d", a[i]);if (i != n - 1)printf(" ");}printf("\n");}return 0;
}
void reverse(int *p, int m) {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;}
}


原题链接:http://acm.hznu.edu.cn/OJ/problem.php?cid=1092&pid=32