11.8 C语言作业四


作者:Meng Kai


1. 代码⻛格

· C语⾔的编程规范和编程⻛格对于代码的可读性、可维护性和协作性都⾮常重要

C++ ⻛格指南 - 内容⽬录: https://zh-googlestyleguide.readthedocs.io/en/latest/google-cpp-styleguide/contents/

· 要求:请浏览上⽅链接的内容,本门课程已学知识涉及到了哪些内容?请挑出其中3个,并摘抄下来。重点浏览 「8. 注释」「9.8. 条件语句」「9.9. 循环和开关选择语句」。
` 思考:作为⼀名初学者,请描述⼀下什么是代码缩进,你平时是否有严格要求⾃⼰进⾏代码缩进呢?

答:
已学过内容:
注释: 注释虽然写起来很痛苦, 但对保证代码可读性至关重要。同时要注意注释固然很重要, 但最好的代码应当本身就是文档。有意义的类型名和变量名, 要远胜过要用注释解释的含糊不清的名字。

条件语句: 最常见的是没有空格的格式。最重要的是保持一致。如果是在修改一个文件, 参考当前已有格式。如果是写新的代码, 参考目录下或项目中其它文件。

循环和开关选择语句: switch语句可以使用大括号分段, 以表明 cases 之间不是连在一起的。在单语句循环里, 括号可用可不用。空循环体应使用 {}continue

代码缩进: 是指在每一行代码左端空出一定长度的空白。其目的是能更加清晰地从外观上看出程序的逻辑结构同时也防止出现错误的缩进而导致结果错误或者运行不出结果。


2. 编程题

· 分别⽤ for while do-while 实现:计算并输出 n! = 1 × 2 × 3 × ⋯× n

答:

for:

代码如下:

#include<stdio.h>

int main()
{
	int n, count, sum = 1;
	scanf("%d", &n);
	for(count = 1; count <= n; count++)			//运用for循环语句求阶乘
	{
		sum = sum * count;
	}
	printf("%d", sum);
    return 0;
}

运行结果如下:

在这里插入图片描述

while:

代码如下:

#include<stdio.h>

int main()
{
	int n, count = 1, sum = 1;
	scanf("%d", &n);
	while(count <= n)			//运用while循环语句求阶乘
	{
		sum = sum * count;
		count++;
	}
	printf("%d", sum);
    return 0;
}

运行结果如下:

在这里插入图片描述

do-while:

代码如下:

#include<stdio.h>

int main()
{
	int n, count = 1, sum = 1;
	scanf("%d", &n);
	do			//运用do-while循环语句求阶乘
	{
		sum = sum * count;
		count++;
	}
	while(count <= n);
	printf("%d", sum);
    return 0;
}

运行结果如下:

在这里插入图片描述


3. 编程题

· 模仿PPT的课程内容,计算⾃然数e = 1 + 1/1! + 1/2! + 1/3! + · · · + 1/n!(直到最后⼀项的绝对值⼩于1e − 7)的编程思路,计算圆周率。

著名的莱布尼兹公式:
在这里插入图片描述

答:
代码如下:

#include <stdio.h>
#include <stdlib.h>
 
int main()
{
	int n, count = 1;
	double sum, term = 1, pai;
	for(n = 1; fabs(term) >= 1e-7; n = n + 2)		//直到最后一项小于1e-7
	{
		term = 1.0 / n;
		if(count % 2 == 0)			//实现一项“+”一项“-”
		{
			sum = sum - term;
		}
		else
		{
			sum = sum + term;
		}
		count++;
	}	
	pai = sum * 4;
	printf("%f", pai);
	return 0;
}

运行结果如下:

在这里插入图片描述


4. 编程题

编写⼀个程序,使⽤ while 循环计算斐波那契数列的前20个数字,并将它们输出到屏幕上。

什么是斐波那契数列?斐波那契数列是⼀个数学上的经典数列,起始于0和1,之后的每⼀项都是前两项的和。它的前⼋项为:0,1,1,2,3,5,8,13,……

答:
代码如下:

#include <stdio.h>
#include <stdlib.h>
 
int main()
{
	int count = 1, num1 = 0, num2 = 1;
	printf("%d ", num1);		//第一项:0
	count++;
	printf("%d ", num2);		//第二项:1
	count++;
	num1 = num1 + num2;
	while(count <= 20)			//表示输出20项
	{
		if(count % 2 != 0)		//num1与num2相互成为前几项和,达成循环
		{
			printf("%d ", num1);
			num2 = num1 + num2;
		}
		else
		{
			printf("%d ", num2);
			num1 = num1 + num2;
		}
		count++;
	}
	return 0;
}

运行结果如下:

在这里插入图片描述


5. 编程题 (附加题)

编写⼀个程序,接受⽤户输⼊的整数,然后按照相反的顺序输出这些数字。例如,输⼊为 12345,输出应为 54321。

答:
代码如下:

#include <stdio.h>
 
int main()
{
    int num;
    scanf("%d", &num);
    for(num; num; num /= 10)		//for循环语句将数字取余后再除以10,以求下一位的数字
    {
    	printf("%d", num % 10);
	}
    return 0;
}

运行结果如下:

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值