鱼C论坛

 找回密码
 立即注册
查看: 910|回复: 1

C语言问题

[复制链接]
发表于 2023-12-27 15:20:33 | 显示全部楼层 |阅读模式

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

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

x
typedef struct
{
        char        ID[20];                // avoid using as an interger(为什么不可以用整型呢?ID输入2001,2002,这种)求解答
        char        name[20];       
        char        gender;                // considering using an enum type��Male/Female/Other
        DATE        birthday;
        float        height;
        float        weight;
        float        BMI;
        BMI_GRADE BMI_grade;
} STAFF;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-12-27 15:20:41 | 显示全部楼层
在C语言中,char类型是用来存储单个字符的数据类型。当想要存储多位数或者表示一个特定范围的整数时,应该使用整型数据类型(比如int)来代替char类型。

对于ID这个字段,如果想要支持输入2001、2002等多位数值,应该使用整型(int)数据类型来定义。修改后的代码如下所示:
typedef struct{        int        ID;                        // 使用整型代替字符型        char        name;        char        gender;        DATE        birthday;        float        height;        float        weight;        float        BMI;        BMI_GRADE BMI_grade;} STAFF;
这样就可以正常存储和处理多位数的ID值了。

另外,关于gender字段,您提到可以考虑使用enum类型来表示Male/Female/Other。enum类型定义了一组具有特定取值范围的符号常量,非常适合用来表达一些固定的取值情况。这里给出一个使用enum类型来表示gender字段的示例代码:
typedef enum {    Male,    Female,    Other} GENDER;typedef struct{    int        ID;    char        name;    GENDER  gender;   // 使用enum类型来表示gender字段    DATE        birthday;    float        height;    float        weight;    float        BMI;    BMI_GRADE BMI_grade;} STAFF;
通过使用enum类型,我们可以更直观地知道gender字段只能取Male、Female和Other这三个值中的一个。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 08:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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