C语言:递归函数3(数组倒序) 时间限制(普通/Java):1000MS/3000MS

C语言:递归函数3(数组倒序)
时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte
总提交:599 测试通过:253
描述

输入多个整数,以0结束,将这些整数逆序后输出。

要求:使用递归函数将数组倒序,在main中调用递归函数。

输入

多个整数,最后为0。

输出

逆序后的这些整数。

样例输入

1 2 5 4 0
1 2 3 4 5 6 7 8 9 0

样例输出

4 5 2 1
9 8 7 6 5 4 3 2 1

提示

注意:每个数后面有一个空格。
有谁能帮帮忙?

第1个回答  2014-01-05
#include "stdio.h"
void Inverse(int a[ ], int left, int right) {
int tmp;
if(left >= right) return;
tmp = a[left];
a[left] = a[right];
a[right] = tmp;
Inverse(a, left + 1, right - 1);
}

void main( ) {
int a[65535], data, n = 0;

scanf("%d", &data);
while(data) {
a[n++] = data;
scanf("%d", &data);
}
Inverse(a, 0, n - 1);
for(int i = 0; i < n; i++)
printf("%d ", a[i])
}本回答被提问者采纳
第2个回答  2014-01-04
//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
void fun(int *p,int n){
if(n) fun(p+1,n-1);
printf("%d ",*p);
return;
}
void main(void){
int a[100]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
fun(a,19);
printf("\n");
}本回答被网友采纳
第3个回答  2014-01-03
#include <stdio.h>

int fun_arr(int *arr) {
if ( *arr == 0 ) {
return ;
}
fun_arr(arr+1);
printf("%d ", *arr);
}

int main(int argc, char *argv[])
{
int arr[20], i = 0;
printf("please input:\n");
do {
scanf("%d", &arr[i]);
i++;
} while ( arr[i-1] != 0 ) ;

fun_arr(arr);

我写了没运行哈 可以再探讨哈
printf("\n");

return 0;
}追问

能不能不用指针呀,好像用指针过不了

相似回答
大家正在搜