小李study 发表于 2023-12-27 15:20:33

C语言问题

typedef struct
{
        char        ID;                // avoid using as an interger(为什么不可以用整型呢?ID输入2001,2002,这种)求解答
        char        name;       
        char        gender;                // considering using an enum type��Male/Female/Other
        DATE        birthday;
        float        height;
        float        weight;
        float        BMI;
        BMI_GRADE BMI_grade;
} STAFF;

FishC 发表于 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;
    GENDERgender;   // 使用enum类型来表示gender字段
    DATE        birthday;
    float        height;
    float        weight;
    float        BMI;
    BMI_GRADE BMI_grade;
} STAFF;

通过使用enum类型,我们可以更直观地知道gender字段只能取Male、Female和Other这三个值中的一个。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: C语言问题