河岸柳 发表于 2021-8-6 15:37:31

s1e14课后作业

代码如下,计算结果错误的原因是啥?
要求:请写一个程序,计算 20 公斤内的运费。(顺丰起步价 23 元,每超一公斤加 14 元)
#include<stdio.h>

int main()
{
        int c,d;
       
        for(c=1,d=23;c<=20;c++,d=d+(c-1)*14)
        {
                printf("%d--%d\n",c,d);
        }
        return 0;
}

2012277033 发表于 2021-8-6 15:37:32

你这里每次for 循环d都会累加一次,所以单第一次计算时d=d+(c-1)*14这个公式是成立的,但是当第二次循环时就变成了d=(d+(c-1)*14)+(c-1)*14了,实际上可以改成这样#include<stdio.h>

int main()
{
      int c,d;
      
      for(c=1;c<=20;c++)
      {
               d=23+(c-1)*14;
                printf("%d--%d\n",c,d);
      }
      return 0;
}

青出于蓝 发表于 2021-8-6 15:52:34

#include<stdio.h>

int main()
{
      int c,d;
      
      for(c=1,d=23;c<=20;c++,d=d+14)
      {
                printf("%d--%d\n",c,d);
      }
      return 0;
}

青出于蓝 发表于 2021-8-6 15:54:20

第七行
d=d+(c-1)*14
这里应该是
d=d+(c-1)*14
因为是每公斤+14,直接d=d+14就好了
欢迎追问~~
页: [1]
查看完整版本: s1e14课后作业