0
点赞
收藏
分享

微信扫一扫

C语言每日一练3:递归训练

爪哇驿站 2022-01-20 阅读 119
c语言

今天是第四天:练习-函数-递归训练

        大家好,我是C语言小白-Haven,今天吸取了下昨天和前天的经验,没有等到晚上才开始写博客。今天这篇博客是我用那种碎片时间写出来的,晚上有时间的话再改善一下。

        说实话我寒假在培训机构学习也算是脱离了自己的舒适圈,这边给我的感觉就是直接把我的网给断了,睡觉的宿舍网速慢得要死,估计是有网络干扰屏蔽仪。在培训基地,网速上课的时候十几MB,休息的时候三四KB,还不让拿手机。宿舍也有很多问题。

但是我感觉学习的时候效率很高,脱离了手机、网络信息以及游戏,这种感觉好像高中学习的样子,但又没有高中的压力以及那么多的规矩。

总的来说:

寒假和暑假确实是提升自己最好的时机。希望你们在这个时间流逝飞快的假期能有自己的收获与提升。

题目:

        利用函数递归
            练习1:递归求阶乘
            练习2:倒序打印字母

思维过程:

        这种递归类型题目去设计函数,我主要遵循的是先写它的简单一点的解放在自己能看到的地方,然后再去写n与n-1的关系,然后再引用函数本身,最后去写递归到最后一步所要写的代码;

        练习2:可以用递归一次输入一次,的方法输入,判断是否是‘回车’或者自己设一个特殊的值,如果不是就继续导入函数本身,递归之后,判断是那个特殊值就向后走输出当前输入的值;

        我自己做的没多少新的思维方式,有兴趣的可以自己去写一下上面的那个想法,比我的简单多了。

/*
	利用函数递归
	练习1:递归求阶乘
	练习2:倒序打印字母
*/
#include<stdio.h>

int factorial(int a);
char daoxu(char b[],int a);


int main ()
{
/******定义与输入模块*******/
	int a=1;
	printf("please input a data:");
	scanf("%d",&a);
/*******导入阶乘函数*******/
	printf("!%d ==",a);
	a=factorial(a);
	printf("== %d\n",a);
/******定义与输入模块*******/
	printf("please input a data to the char:");
	scanf("%d",&a);
	char b[a];
	int i;
	printf("please input %d charact:\n",a-1);
	for(i=0;i<a;i++)
	{
		scanf("%c",&b[i]);//可以换成b[i]=getchar();但由于char型只有一个字节所以不能打空格
		//b[i]=getchar();			
		
	}
/*******导入倒序打印字母函数*******/
	a--;
	daoxu(b,a);
	return 0;
}



int factorial(int a)//这是阶乘模块
{
	if(a==1)
	{
		printf(" %d ",a);
		return 1;
	}
	
	printf(" %d *",a);
	return factorial(a-1)*a;
}

char daoxu(char b[],int a)//倒序打印字母
{
	if(a==0)
	{
		printf("%c",b[a]);
		return b[a];
	}
	printf("%c ",b[a]);
	return daoxu(b,a-1);
}

举报

相关推荐

c语言每日一练(3)

c语言每日一练(9)

c语言每日一练(12)

c语言每日一练(13)

C语言每日一练(1)

c语言每日一练(15)

0 条评论