鱼C论坛

 找回密码
 立即注册
查看: 1165|回复: 5

[已解决]关于S1E14课后作业顺丰运费

[复制链接]
发表于 2023-7-31 22:47:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 妖娆乌龙茶 于 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;
}
        
两种运行结果是一样,但思路是不一样的,我是新手不太了解,为了培养自己的思维,想问下大家程序员会习惯哪种程序的写法?
最佳答案
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语言的语法规范。在实际编程中,清晰和易于理解的代码对于自己和他人都是非常有价值的,特别是在团队合作开发或代码维护时。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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语言的语法规范。在实际编程中,清晰和易于理解的代码对于自己和他人都是非常有价值的,特别是在团队合作开发或代码维护时。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-31 22:47:25 | 显示全部楼层
在C/C++编程中,不同的程序员可能会有不同的编码风格和习惯。对于这个特定的问题,两种写法都是有效的,并且结果是一样的。

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

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

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

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

球一个最佳答案谢谢啦!这对我非常重要!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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);
        {
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

源代码打错了,不好意思啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

源代码打错了sorry!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-16 10:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表