嵌入式笔记day07

该文提供了几道编程练习题的解决方案,包括计算1到20的阶乘之和,输入正整数并逆序打印其各位数字,以及求斐波那契数列的前20项之和。同时,文章介绍了for循环的工作原理,return语句的作用,以及break和continue在控制流程中的应用。
摘要由CSDN通过智能技术生成

day06练习题

  1. 求 1!+2!+3!+…+20!的和
//思路:使用一个循环结构算阶乘,在嵌套一个循环结构求和
	long long a = 1, b, sum1 = 1, sum2 = 0;
	while(a<=20)
	{
		b = a;
		sum1 = 1;	//每次循环恢复初始值
		while(b>0)
		{
			sum1 = sum1 * b;
			b--;
		}
		sum2 = sum2 + sum1;
		a++;
		printf("1到20的阶乘之和为:%lld\n", sum2);
	}
  1. 输入一个小于5位的正整数,逆序打印出各位数字
//思路:求每一项,判断位数,倒序输出
	int x, y, a, b, c, d;
	printf("输入一个小于5位的正整数:");
	scanf("%d", &x);
	a = x / 1000;
	b = x % 1000 / 100;
	c = x % 100 / 10;
	d = x %10;
	if(a==0 && b!=0)
	{
		printf("%d%d%d\n", d, c, b);
	}
	else if(a==0 && b==0 & c!= 0)
	{
		printf("%d%d\n", d, c);
	}
	else if(a==0 && b==0 & c==0)
	{	
		printf("%d\n", d);
	}
	else
	{
		printf("%d%d%d%d\n", d, c, b, a);
	}
  1. 求2/1+3/2+5/3+8/5+13/8+…前20项之和
//思路:递归和递推
	double a = 2, b = 1, c = 3, d = 2, e, f;
	int i = 1;
	double x, s;

	while(i<=20)
	{
		x = a/b;
		e = a + c;
		f = b + d;
		a = c;
		b = d;
		c = e;
		d = f;
		s = s + x;
		i++;
	}
	printf("前20项之和位:%f\n", s);

for 循环

for(初始值; 判断; 判断量改变时)
{
	循环体
}
//每个花括号被称作一个块
  1. for循环内创造的变量会在循环一次后销毁,到第二次循环再重新创建
  2. 子块可以用父块的变量
  3. 当子块创建了与父块同名的变量时,父块变量会被遮蔽
  4. 父块不可使用子块中创建的变量
  5. 子块执行结束后,子块中创建的变量都会被销毁

return语句

  1. 在需要有返回值的函数中,必须执行"return 值; "
  2. 在不需要有返回值的函数中(void),执行"return; ",这条语句不是必要的
  3. 只要执行return语句,函数就立即执行结束
//如何调用取得子函数中的值

int f1(int a);

int main()
{
	int a = 20;
	int b = f1(a);
	printf("a = %d, b = %d\n", a, b);
	return 0;
}

int f1(int a)
{
	a = a * a;
	return a;
}

//结果;a = 20, b = 400

break语句

	break;

//switch中执行break,结束switch
//break用在while, do while, for中,结束当前循环

continue语句

	continue;

//只能用在循环中,包括while, do while, for
//结束当前循环,开始下一次循环 

exit语句

	exit();

//关闭所有文件,终止正在执行的进程
//所在头文件:stdlib.h
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值