C语言函数编程练习

1.汉诺塔问题

/*hanoi(汉诺塔问题)*/
#include  <stdio.h>

void move(char getone,char putone)
{
	printf("%c->%c\n",getone,putone);
}

void hanoi(int n,char one,char two,char three)
/*将n个盘子从one借助two,移到three*/
{
	if(n == 1)
	{
		move(one,three);
		
	}
	else
	{
		hanoi(n-1,one,three,two);
		move(one,three);
		hanoi(n-1,two,one,three);
	}
}

int main()
{
	int m;
	
	printf("please input a number:");
	printf("%d",&m);
	
	printf("the step to moving %d disks :\n",m);
	hanoi(m,'A','B','C');
	
	return 0;
}
2.利用递归函数调用方式,将所输入的n个字符以相反顺序打印出来

/*利用递归函数调用方式,将所输入的n个字符以相反顺序打印出来*/
#include <stdio.h>

void print_char(int n)
{	
	char a;
	if(n <= 0)
	{
		a=getchar();
		putchar(a);
	}
	else
	{
		a=getchar();
		print_char(n-1); //当输入不止一个字符时,先进后出输出
		putchar(a);
	}

}

int main()
{
	int i;
	printf("please input n:");
	scanf("%d",&i);
	print_char(i);

	return 0;
}

3.写一个函数实现9*9乘法表

/*输出9*9乘法表:要求输出格式为:
1 2 3 4 5 6 7 8 9
- - - - - - - - -
1 
2 4
3 6 9
4 8 12 16
5 10 15 20 25
...
9 18 27 36 ............81
*/
#include <stdio.h>

int main()
{
	int i = 0;
	int j = 0;
	int a[9][9];
	
	for ( i = 0;i < 9 ;i++ )
	{
		for ( j = 0;j < 9;j++ )
		{
			a[i][j] = ( i + 1 )*( j + 1 );	//实现乘法运算
		}
		
	}
	
	printf("1  2  3  4  5  6  7  8  9\n");
	printf("-  -  -  -  -  -  -  -  -\n");

	for ( i = 0;i < 9;i ++ )         //输出乘法表
	{
		for ( j = 0;j <= i ;j ++ )
		{
			printf("%d ",a[i][j]);
		}
		printf("\n");
	}

	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值