C语言典型例题14

//《C程序设计教程(第四版)------谭浩强》

//习题2.2 中国在2020年11月1日进行第7次全国人口普查,全国人口为1411778724人,假设年增长率为0.5%,计算到2050年有多少人口?

//《C程序设计教程(第四版)------谭浩强》
//习题2.2 中国在2020年11月1日进行第7次全国人口普查,全国人口为1411778724人,假设年增长率为0.5%,计算到2050年有多少人口?
#include <stdio.h>
#include <math.h>
int main()
{
	double p0=1411778724;//2020年全国人口为1411778724人
	double p1;//2050年要存储的人口数
	int x;//年份差
	double a=0.005;//年增长率
	//数学公式:p1=p0(1+a)的x次方
	printf("中国在2020年11月1日进行第7次全国人口普查,全国人口为1411778724人,假设年增长率为0.5%,计算到2050年有多少人口?\n");
	x=2050-2020;
	p1=p0*pow(1+a,x);//pow是指数的意思
	printf("2050年有人口:%f",p1);
	return 0;
}

运行后的代码:

写代码过程中遇到的问题:

(1)不可以写成float类型,因为float类型的数据只能能表示7位精度,而double类型的数据可以表示15位类型的数据。

(2)C语言提供的幂函数的书写

pow(公式,指数);

要使用这个幂函数,头文件必须写上#include <math.h>,对其进行必须有的预处理

(3)得到的结果的小数部分是没有意义的,应该对他进行四舍五入

应该写成 printf("2050年有人口:%12.0f",p1);

整体修改后的代码如下:

//《C程序设计教程(第四版)------谭浩强》
//习题2.2 中国在2020年11月1日进行第7次全国人口普查,全国人口为1411778724人,假设年增长率为0.5%,计算到2050年有多少人口?
#include <stdio.h>
#include <math.h>
int main()
{
	double p0=1411778724;//2020年全国人口为1411778724人
	double p1;//2050年要存储的人口数
	int x;//年份差
	double a=0.005;//年增长率
	//数学公式:p1=p0(1+a)的x次方
	printf("中国在2020年11月1日进行第7次全国人口普查,全国人口为1411778724人,假设年增长率为0.5%,计算到2050年有多少人口?\n");
	x=2050-2020;
	p1=p0*pow(1+a,x);//pow是指数的意思
	printf("2050年有人口:%12.0f",p1);
	return 0;
}
相关推荐
qystca27 分钟前
洛谷 B3637 最长上升子序列 C语言 记忆化搜索->‘正序‘dp
c语言·开发语言·算法
薯条不要番茄酱27 分钟前
数据结构-8.Java. 七大排序算法(中篇)
java·开发语言·数据结构·后端·算法·排序算法·intellij-idea
今天吃饺子32 分钟前
2024年SCI一区最新改进优化算法——四参数自适应生长优化器,MATLAB代码免费获取...
开发语言·算法·matlab
努力进修37 分钟前
“探索Java List的无限可能:从基础到高级应用“
java·开发语言·list
Ajiang28247353043 小时前
对于C++中stack和queue的认识以及priority_queue的模拟实现
开发语言·c++
幽兰的天空3 小时前
Python 中的模式匹配:深入了解 match 语句
开发语言·python
Theodore_10226 小时前
4 设计模式原则之接口隔离原则
java·开发语言·设计模式·java-ee·接口隔离原则·javaee
网易独家音乐人Mike Zhou6 小时前
【卡尔曼滤波】数据预测Prediction观测器的理论推导及应用 C语言、Python实现(Kalman Filter)
c语言·python·单片机·物联网·算法·嵌入式·iot
----云烟----8 小时前
QT中QString类的各种使用
开发语言·qt
lsx2024068 小时前
SQL SELECT 语句:基础与进阶应用
开发语言