文章目录
题目
总时间限制: 1000ms 内存限制: 65536kB
描述
将一个数组中的值按逆序重新存放。例如,原来的顺序为8,6,5,4,1。要求改为1,4,5,6,8。
输入
输入为两行:第一行数组中元素的个数n(1<n<100),第二行是n个整数,每两个整数之间用空格分隔。
输出
输出为一行:输出逆序后数组的整数,每两个整数之间用空格分隔。
样例输入
5
8 6 5 4 1
样例输出
1 4 5 6 8
思路
对于递归要注意三点:传入什么,输出(返回)什么及其先后顺序,还有限制递归的条件。
解题方法
由思路得
Code
c
#include <stdio.h>
void f(int *m, int i, int n) {
if(i < n) {
f(m+1, i+1 ,n);
printf("%d ", *m);
}
}
int main() {
int n, m[100];
scanf("%d", &n);
for(int i = 0; i < n ; i++) {
scanf("%d", &m[i]);
}
f(m, 0, n);
}