哈岁NB 发表于 2019-8-6 11:41:03

C语言SE16动动手疑问

#include <stdio.h>


int main()
{
       
        double awards = 4000000;
        int count = 0;
       
        do
        {
                awards -= 500000;
                awards += awards*0.08;
               
                count++;
        }while(awards <= 0);
       
        printf("%d年后,小甲鱼一贫如洗\n",count);
       
        return 0;             

}
应该显示十二年为什么我的显示是一年。请求大佬帮助。

蓝炎彼岸花 发表于 2019-8-7 13:24:11

你while里面的表达式错了,当符合表达式执行循环,你的表达式是余额<=0, 意思就是<=0的时候才执行循环。应该是大于0执行循环。代码如下:
#include <stdio.h>

int main()
{
      
      double awards = 4000000;
      int count = 0;
      
      do
      {
                awards -= 500000;
                awards += awards*0.08;
               
                count++;
      }while(awards > 0);
      
      printf("%d年后,小甲鱼一贫如洗\n",count);
      
      return 0;
      
}

哈岁NB 发表于 2019-8-7 19:15:19

蓝炎彼岸花 发表于 2019-8-7 13:24
你while里面的表达式错了,当符合表达式执行循环,你的表达式是余额

明白了,谢谢了

新学 发表于 2019-8-7 19:58:26

将    while( awards <= 0)
改为while( awards > 0)

新学 发表于 2019-8-7 19:59:14

将    while( awards <= 0)
改为 while( awards > 0)。

蓝炎彼岸花 发表于 2019-8-21 09:43:53

@不二如是 ,能设个最佳吗?
页: [1]
查看完整版本: C语言SE16动动手疑问