注册 登录
编程论坛 C语言论坛

C语言程序设计

吧啦哔哩啵 发布于 2020-09-02 15:18, 2570 次点击
设2010年我国人口为13.5亿,如果人口增长率为2%,求:2025年我国人口为多少?要使我国人口到2050年底不超过16亿,那么人口增长率最多为多少?
#include<stdio.h>
void main()
{
        double a,b,c,i;
        a=1;b=13.5;i=1;
        while(i<=15)
        {
                a=a*(1+0.02);
                c=a*b;
                i=i+1;
        }
        printf("2025年我国人口为%f\n",c);
}
刚开始学C语言,这是书上的题目,第一问做出来了。第二问不知道如何下手,求大佬解答,希望可以用尽量简单的语句,刚学基础,太复杂的话看不懂
6 回复
#2
纯蓝之刃2020-09-02 15:56
程序代码:
#include <stdio.h>
#include <math.h>
int main()
{
    double a,b=13.5,rate=0.02;
    a=b*pow(1+rate,15);
    printf("2025年我国人口为%f\n",a);

    while(1)
    {
        a=b*pow(1+rate,40);
        if(a<16)
        {
            if(a>15.99)
                break;
            else
                rate=rate/2*3;
        }
        else
            rate/=2;
    }
    printf("人口增长率最多为%g%%\n",rate*100);

    return 0;
}
#3
吧啦哔哩啵2020-09-02 17:33
回复 2楼 纯蓝之刃
多谢大佬
#4
咕噜鱼2020-09-03 09:16
我也试试
#5
rjsp2020-09-03 09:53
程序代码:
#include <stdio.h>
#include <math.h>

int main( void )
{
    printf( "2025年我国人口为 %.1f 亿\n", 13.5*pow(1+0.02,2025-2010) );
    printf( "要使人口到2050年底不超过16亿,那么人口增长率最多为 %.1f%%\n", (pow(16/13.5,1.0/(2050-2010))-1)*100 );
}
#6
慕城丶2020-09-03 14:29
我感觉需要用到第一问的答案  
 13.5*0.02^40=20.009……(13.5乘以0.02的40次方)
#include<stdio.h>
#include<math.h>
main()
{
  int i ;
double  a=13.0,b,k;         //a是初始人口,k是2050年的人口,b是人口增长率
   k=13.0;
     b=0.009;
 do
{
        k=13.0*pow(1+b,40);
         
          b=b-0.001;
 }
 while(k>=16);
       printf("我国2050年人口为%lf亿\n",k);
        printf("要使我国人口到2050年底不超过16亿,那么人口增长率最多为%lf",b);
}



我用循环做有问题 用函数就没问题。。。望采纳
#7
fulton102020-09-17 17:23
回复 5楼 rjsp
你这个复利计算公式比较难看懂,解释下5楼的计算,pow应该是幂函数吧。
第一个公式计算13.5*(1+2%)^(2025-2010)=X
第二个公式计算13.5*(1+X)^(2025-2010)=16

[此贴子已经被作者于2020-9-17 17:30编辑过]

1