0714学习笔记(函数嵌套和递归)

重点回顾

标识符(变量名、函数名):字母、数字、下划线的组合。

十六进制数转化为十进制数计算过程:

#include <stdio.h>

void te(char a,char b,char c)
{
	int d,e,f,o;
	//printf("%d,%d,%d\n",a,b,c); 
	if(a<='9')
	{
		d=(a-48)*16*16;
		//printf("%d\n",d);
	}
	else
		switch(a)
		{
			case 'a':
			case 'A':
				d=10*16*16;
				//printf("%d\n",d);
				break;
			case 'b':
			case 'B':
				d=11*16*16;
				break;
			case 'c':
			case 'C':
				d=12*16*16;
				break;
			case 'd':
			case 'D':
				d=13*16*16;
				break;
			case 101:
			case 'E':
				d=14*16*16;
				break;
			case 'f':
			case 'F':
				d=15*16*16;
				break;
			default:
				break;
		}
	if(b<58)
		e=(b-48)*16;
	else
		switch(b)
		{
		case 'a':
			case 'A':
				e=10*16;
				break;
			case 'b':
			case 'B':
				e=11*16;
				break;
			case 'c':
			case 'C':
				e=12*16;
				break;
			case 'd':
			case 'D':
				e=13*16;
				break;
			case 101:
			case 'E':
				e=14*16;
				break;
			case 'f':
			case 'F':
				e=15*16;
				break;
			default:
				break;
		}
		if(c<58)
		f=(c-48);
	else
		switch(c)
		{
		case 'a':
			case 'A':
				f=10;
				break;
			case 'b':
			case 'B':
				f=11;
				break;
			case 'c':
			case 'C':
				f=12;
				break;
			case 'd':
			case 'D':
				f=13;
				break;
			case 101:
			case 'E':
				f=14;
				break;
			case 'f':
			case 'F':
				f=15;
				break;
			default:
				break;
		}
	o=d+e+f;
	//printf("%d,%d,%d\n",d,e,f);
	printf("该十六进制数转化为十进制为:%d",o);

}

int main()
{
	char a,b,c;
	printf("请输入一个十六进制数(三位数):");
	a=getchar();
	b=getchar();
	c=getchar();
	te(a,b,c);
	return 0;
}

函数嵌套:

#include <stdio.h>

int add(float a,float b)
{
	float c;
	c=a+b;
	return c;
}

int j(float a,float b)
{
	float c;
	c=a-b;
	return c;
}

int cs(float a,float b)
{
	float c;
	c=a*b;
	return c;
}

int hu(float a,float b)
{
	float c;
	c=a/b;
	return c;
}

int ci(float a,char ch ,float b)
{
	float c;
	switch(ch)
	{
		case '+':
			c=add(a,b);
			break;
		case '-':
			c=j(a,b);
			break;
		case '*':
			c=cs(a,b);
			break;
		case '/':
			c=hu(a,b);
			break;
		default:
			break;
	}
	return c;
}

int main()
{
	float a,b,c;
	char ch;
	printf("请输入计算式子:");
	scanf("%f",&a);
	ch=getchar();
	scanf("%f",&b);
	c=ci(a,ch,b);
	printf("%.2f %c %.2f = %.2f",a,ch,b,c); 
	return 0;	
} 

多数比较:

#include <stdio.h>

int te(int a,int b)
{
	return a>b ? a : b;
}

int main()
{
	int a,b,c,i,max;
	printf("请输入要比较的数字个数:");
	scanf("%d",&a);
	printf("请输入数字,用回车隔开:\n");
	scanf("%d",&b);
	scanf("%d",&c);
	max=te(b,c);
	for(i=1;i<a-1;i++)
	{
		scanf("%d",&c);
		max=te(max,c);
	} 
	printf("该组数中最大值为%d",max);
	return 0;
} 

被调函数声明:

放在头文件下面,main上面,后加“;”。

int  max(int num_01,int num_02);  完整声明。

int max(int ,int );精简声明。

#include <stdio.h>

int te(int a,int b);

int main()
{
	int a,b,c,i,max;
	printf("请输入要比较的数字个数:");
	scanf("%d",&a);
	printf("请输入数字,用回车隔开:\n");
	scanf("%d",&b);
	scanf("%d",&c);
	max=te(b,c);
	for(i=1;i<a-1;i++)
	{
		scanf("%d",&c);
		max=te(max,c);
	} 
	printf("该组数中最大值为%d",max);
	return 0;
} 

int te(int a,int b)
{
	return a>b ? a : b;
}

递归调用:

#include <stdio.h>

int ci(int a,int b)
{
	int c;
	if(b==0)
		c=1;
	else 
		c=ci(a,b-1)*a;
	return c;
}

int main()
{
	int a,b,c;
	printf("请输入底数和次幂,用回车隔开:\n");
	scanf("%d\n%d",&a,&b);
	c=ci(a,b);
	printf("%d^%d=%d",a,b,c);
	return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值