【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