首页 > 编程语言 > 详细

C语言递归输入输出数字

时间:2021-02-02 18:58:51      阅读:24      评论:0      收藏:0      [点我收藏+]
#include <stdio.h>
#define N 6

void input(int *p,int n);
void ouput(int *p,int n);

int main(){
	int a[N];
	input(a,N);
	ouput(a,N);
    return 0;
}

void input(int *p,int n){
	if(n==0) return;
	scanf("%d",p);
	input(++p,--n);
}

void ouput(int *p,int n){
	//while(n--){
	//	printf("%d ",*p++);
	//}
	if(n==0) return;
	printf("%d ",*p);
	ouput(++p,--n);
}

 

废话:又好久没碰C了,看到有人问输入几个数字的问题,想了下怎么输入n个数字。

循环写得太多了,为增加一点难度,想用递归写。

 

把输入一行数分成,输入单个数,要递归实现要保存数组下一个位置的指针,总数减1

  input(++p,--n)

起始p指向a(第一个元素),n为数组元素总数

每次调用让 p+1,n-1

当 n=0 时,即已经输入n次时,返回函数

输出也以同样方式递归调用。

C语言递归输入输出数字

原文:https://www.cnblogs.com/zokf7cc/p/14363097.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!