//《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;
}