C语言小练习(三)

系列文章目录(从第七期开始难度递增,适合C语言期末复习)

C语言小练习(一)
C语言小练习(二)
C语言小练习(三)
C语言小练习(四)
C语言小练习(五)
C语言小练习(六)
C语言小练习(七)
C语言小练习(八)



前言

今天给大家带来本栏目的第三篇文章,今天要和大家一起练习三个项目,准备好了吗?


一、等差数列的求和

1.背景简介

提到等差数列,想必大家都不陌生,但是代码下的等差数列却别有一番风味,大家可以一起来看看。此外,感兴趣的读者可以自己尝试写一下等比数列的代码。

2.等差数列求和(公式法)

#include<stdio.h>
int main()
{
	printf("等差数列的说明:a1为首项,n为项数,公差为d\n");
	int a1, n, d,  sum;
 	printf("请分别输入首项(a1),项数(n)和公差(d):");
	scanf("%d%d%d", &a1, &n, &d); 
    sum = n*a1 + ((n*(n-1))/2)*d; 
	printf("等差数列前%d项的和为%d", n, sum);
	return 0 ;
}

这个是根据数学上的定义来直接写出的代码,难度不大,大家可以用来练练手,但接下来的循环法可就有一定难度了,希望大家认真阅读。

3.等差数列求和(循环法)

#include<stdio.h>
int main()
{
	printf("等差数列的说明:a1为首项,n为项数,公差为d,和为sum,末项为an\n");
	int a1, n, d, an, sum = 0;
 	printf("请分别输入首项(a1),公差(d)和项数(n):");
	scanf("%d%d%d", &a1, &d, &n); 
	an = a1 + (n-1) * d;
	printf("等差数列的末项为%d\n",an);	
	while (a1 <= an)
	{
		sum +=  a1;
		a1 += d;
	} 
	printf("等差数列前%d项的和为%d", n, sum);
	return 0 ;
}

这个代码就略微复杂了,且听我详细分析:
(1)首先要弄清楚等差数列求和的原理,先给一个首项,迭代累加一定次数后得到最终结果。
(2)接下来就是核心——循环的书写,大家应该知道循环的三要素是初始值,执行语句,判断(终止)条件。
(3)初始值为 a1(第一项) ,终点值为 an (第n项),执行语句为 sum (前n项和)以 a1 (第一项)为长度累加, a1 (第一项)以 d (公差)为长度累加,当 a1 的值与 an 的值相同时,终止运行。
(4)所以每次用代码解决数学问题时,首先应该解决数学上的算法设计问题,而不是直接上手就写代码,这样很容易出错或者设计出的代码并非最优方案。

二、摄氏温度与华氏温度的转换

#include<stdio.h>
int main()
{
	float C1, F1, C2, F2;
	printf("请输入一个摄氏温度:");
	scanf("%f", &C1);
	F1 = 1.8 * C1  + 32;
	printf(" %.2f 对应的华氏温度为:%.2f\n",C1, F1);
	printf("请输入一个华氏温度:");
	scanf("%f", &F2);
	C2 = (F2 - 32) / 1.8;
	printf(" %.2f 对应的摄氏温度为:%.2f\n",F2 , C2);
	return 0;
}

这个问题也没有太大的难度,主要考验的是大家的细心程度,公式的书写,浮点数位数的确定scanf函数的规范以及输出结果的相互对应等等都需要大家认真再认真。

三、最低生活保障

1.题目背景

对于社保中心的工作人员来说,最麻烦的莫过于判断一个人是否具备申请最低生活保障的资格,因此笔者设计了一个简单的小程序来判断小军一家有没有这个资格。

2.代码分析

#include<stdio.h>
int main()
{
	printf("小军一家准备申请低保,请你判断他们是否符合条件\n");
	int a, b ,c, sum;
	printf("请分别输入爸爸,妈妈和小军的收入:"); 
	scanf("%d%d%d",&a ,&b, &c);
	sum = a + b + c;
	if(sum >= 60000)
	printf("小军一家不符合条件\n");
	else printf("小军一家符合条件\n");
	printf("此外他们还想买辆二手车,请你判断他们买车后剩余的钱为多少\n");
	int car, remain;
	printf("请输入车的价格:");
	scanf("%d", &car);
	if(car < sum)
	{
		remain = sum - car;
		printf("买车后剩余的钱为:%d\n",remain);
	}
	else printf("小军家不能买车");
	return 0;
}

这个题目同样难度不大,主要考察大家的逻辑思维能力利用简单的数学运算和条件判断即可写出代码。
以上就是今天的内容了,谢谢观看!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mentality瑞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值