如何用c语言数组和循环结构解决这个实际问题?

一个百万富翁遇到一个陌生人,陌生人找他谈了一个换钱的计划。该计划如下:我每天给你m 元, 而你第一天只需给我一分钱。第二天我仍给你 m 元,你给我 2 分钱。第三天,我仍给你 m 元,你给我 4 分钱。依次类推,你每天给我的钱是前一天的两倍,直到一个月(30)天。百万富翁很高兴, 欣然接受这个契约。现要求,编写一个程序,由键盘输入 m,计算多少天后,百万富翁开始亏钱。再计算30天后, 富翁亏了多少钱?

2个回答

 #include <stdio.h>

void star(void);     //打印星号

int main()
{  
    int    i;
 float  money;
 float  late_money=0.0;
 float  sum_money=0.0;

 star();   //打印星号

 money=0.01;  

    for(i=1; i<=30; i++)  
 {  
  sum_money+=300000.0;    //计算给富翁的钱

  late_money+=money;      //计算给陌生人的钱
     money=money* 2;

  printf("第%2d天后,富翁给的钱为:%10.2f\t", i, late_money);
  printf("陌生人得给的钱为:%11.2f\n", sum_money);
 }
    printf("\n富翁看到结果后,会反悔吧!\n");

 printf("\n哈哈,谢谢您的合作!\n\tGOOD BYE!\n");
    star();   //打印星号

    return 0;
}

//star函数  
void star(void) 
{    
    int i; 

    for(i=0; i<60; i++) 
    { 
        printf("*"); 
    } 
    printf("\n"); 
}  

准确的说,这是一道数学题,陌生人的损失是线性增长的,很自然,m元/天乘以天数dateNum即可算出,而陌生人的收入是指数增长的。其增长是一个等比数列,利用求和公式即可得到第x天的收入,当陌生人的收入>损失时,富翁开始亏钱。
如果要利用循环来做,while循环即可,分别记录支出和收入,然后在循环体里判断即可。使用数组是没有看懂,如果是要缓存富翁的收入,倒也不是不可以,但是没有必要。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问