妖娆乌龙茶 发表于 2023-7-31 22:47:02

关于S1E14课后作业顺丰运费

本帖最后由 妖娆乌龙茶 于 2023-7-31 22:54 编辑

0. 请写一个程序,帮小甲鱼计算 20 公斤内的运费。(顺丰起步价 23 元,每超一公斤加 14 元)
小甲鱼的答案是
#include <stdio.h>

#define FIRST_KG 23
#define NEXT_KG 14

int main()
{
      int weight, cost;

      printf("公斤 —— 花费(元):\n");
      for (weight = 1, cost = FIRST_KG; weight <= 20; weight++, cost += NEXT_KG)
      {
                printf("%3d——%3d\n", weight, cost);
      }

      return 0;
}我思考的答案是
#include <stdio.h>

#define FIRST_KG 23
#define NEXT_KG 14

int main()
{
      int weight, cost;

      printf("公斤 —— 花费(元):\n");
      for (weight = 1, ; weight <= 20; weight++, )
       { cost = FIRST_KG + NEXT_KG* (weight-1);
         printf("%3d——%3d\n", weight, cost);
       }
return 0;
}
      两种运行结果是一样,但思路是不一样的,我是新手不太了解,为了培养自己的思维,想问下大家程序员会习惯哪种程序的写法?

isdkz 发表于 2023-7-31 22:47:24

作为程序员,通常会倾向于采用更加清晰和易于理解的代码写法。在你提供的两种程序写法中,明显第一种写法更加规范和易于理解。让我们来分析这两种写法的区别:

第一种写法:
#include <stdio.h>

#define FIRST_KG 23
#define NEXT_KG 14

int main()
{
    int weight, cost;

    printf("公斤 —— 花费(元):\n");
    for (weight = 1, cost = FIRST_KG; weight <= 20; weight++, cost += NEXT_KG)
    {
      printf("%3d——%3d\n", weight, cost);
    }

    return 0;
}


第二种写法:
#include <stdio.h>

#define FIRST_KG 23
#define NEXT_KG 14

int main()
{
    int weight, cost;

    printf("公斤 —— 花费(元):\n");
    for (weight = 1, ; weight <= 20; weight++, )
    {

    }

    return 0;
}


在第一种写法中,循环的初始化部分和更新部分都被正确地赋予了合理的值。循环的初始化设置了weight为1,cost为23,而更新部分对weight和cost进行了合理的自增和累加操作。

然而,在第二种写法中,循环的初始化和更新部分都被省略了,这会导致编译错误,因为语法上缺少必要的表达式。

因此,大多数程序员会习惯采用第一种写法,因为它更明确地表达了循环的初值和更新规则。这样的写法更易于理解和维护,而且符合C语言的语法规范。在实际编程中,清晰和易于理解的代码对于自己和他人都是非常有价值的,特别是在团队合作开发或代码维护时。

Mike_python小 发表于 2023-7-31 22:47:25

在C/C++编程中,不同的程序员可能会有不同的编码风格和习惯。对于这个特定的问题,两种写法都是有效的,并且结果是一样的。

然而,通常情况下,编程规范会建议使用第一种写法,即在循环的初始化部分和循环体中都提供明确的变量赋值语句。这样做的好处是代码更加清晰易读,易于理解和维护。同时,这种方式也能够明确地传达出程序员的意图,使其他人更容易理解代码的逻辑。

因此,大多数程序员倾向于使用第一种写法,将变量的初始化和增量操作放在循环的不同部分,以增加代码的可读性和可维护性。但这并不意味着第二种写法是错误的,如果在某些情况下你认为第二种写法更加简洁或合适,你也可以选择使用它。

总之,无论选择哪种写法,重要的是保持一致性和可读性,并遵循所用编程语言的最佳实践和编码规范。

希望这个回答对你有所帮助!如果还有其他问题,请随时提问。

球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}

妖娆乌龙茶 发表于 2023-7-31 22:49:33

#include <stdio.h>

#define FIRST_KG 23
#define NEXT_KG 14

int main()
{
      int weight, cost;

      printf("公斤 —— 花费(元):\n");
      for (weight = 1, ; weight <= 20; weight++, )
       cost = FIRST_KG * (weight-1);
       printf("%3d——%3d\n", weight, cost);
      {

妖娆乌龙茶 发表于 2023-7-31 22:55:21

Mike_python小 发表于 2023-7-31 22:47
在C/C++编程中,不同的程序员可能会有不同的编码风格和习惯。对于这个特定的问题,两种写法都是有效的,并 ...

源代码打错了,不好意思啊

妖娆乌龙茶 发表于 2023-7-31 22:55:47

isdkz 发表于 2023-7-31 22:47
作为程序员,通常会倾向于采用更加清晰和易于理解的代码写法。在你提供的两种程序写法中,明显第一种写法更 ...

源代码打错了sorry!
页: [1]
查看完整版本: 关于S1E14课后作业顺丰运费