IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> C语言结构体和枚举 -> 正文阅读

[数据结构与算法]C语言结构体和枚举

c 语言结构体

#include <stdio.h>
// 结构体和枚举
// 结构体用户自定义的数据类型, 允许存储不同类型的数据, 而数组只能存储相同类型的数据
// 定义一个结构体
//  struct 结构体名{结构体所包含的变量或数组}
// 第一种格式
struct student{
    char  *name; // 姓名
    int num; // 学号
    int age;  // 年龄
    char group;  // 所在学习小组
    float score; // 成绩
};
int main() {
    // 第二种格式
    struct {
        char  *name; // 姓名
        int num; // 学号
        int age;  // 年龄
        char group;  // 所在学习小组
        float score; // 成绩
    } stu1;
    //  结构体成员赋值
    stu1.name = "eric";
    stu1.num = 1234;
    stu1.age = 19;
    stu1.group = 'A';
    stu1.score = 99.9;
    // "eric 1992922 18 12 88"
    printf("stu1.name =%s stu1.num = %d stu1.age = %d  stu1.group = %c stu1.score = %.1f  \n", stu1.name, stu1.num, stu1.age, stu1.group, stu1.score);
    return 0;
}

在实际编程中,有些数据的取值往往是有限的,只能是非常少量的整数,并且最好为每个值都取一个名字,以方便在后续代码中使用,比如一个星期只有七天,一年只有十二个月,一个班每周有六门课程等。

#include <stdio.h>
#define Mon 1
#define Tues 2
#define Wed 3
#define Thurs 4
#define Fri 5
#define Sat 6
#define Sun 7
#define PI 3.14
int main() {
    int day;
    scanf("%d", &day);
    switch (day) {
        case Mon:
            puts("Monday"); break;
        case Tues:
            puts("Tuesday"); break;
        case Wed:
            puts("Wednesday"); break;
        case Thurs:
            puts("Thursday"); break;
        case Fri:
            puts("Friday"); break;
        case Sat:
            puts("Saturday"); break;
        case Sun:
            puts("Sunday"); break;
        default:
            puts("Error !");

    }
    return 0;
}
```![在这里插入图片描述](https://img-blog.csdnimg.cn/40052f23813141debfcd0d3b9b0db46f.png)


#define命令虽然能解决问题,但也带来了不小的副作用,导致宏名过多,代码松散,看起来总有点不舒服。C语言提供了一种枚举(Enum)类型,能够列出所有可能的取值,并给它们取一个名字。
枚举类型的定义形式为:
```c
enum typeName{ valueName1, valueName2, valueName3, ...... };
#include <stdio.h>
#define PI 3.14
int main() {
    // 默认 枚举是从0 开始的, 依次递增
//    enum week{Mon, Tues, Wed, Thurs, Fri, Sat, Sun};
//    printf("Tues = %d", Tues); // 1
//    enum week{Mon=1, Tues, Wed, Thurs, Fri, Sat, Sun};
//    printf("Tues = %d", Tues); // 2
    enum week{Mon=1, Tues=3, Wed, Thurs, Fri, Sat, Sun};
    printf("Wed = %d", Wed);// 4
    return 0;
}

ennum版本

#include <stdio.h>
int main() {
    enum week{Mon=1, Tues=3, Wed, Thurs, Fri, Sat, Sun} day;
    scanf("%d", &day);
    switch (day) {
        case Mon:
            puts("Monday"); break;
            case Tues:
                puts("Tuesday"); break;
            case Wed:
                puts("Wednesday"); break;
            case Thurs:
                puts("Thursday"); break;
            case Fri:
                puts("Friday"); break;
            case Sat:
                puts("Saturday"); break;
            case Sun:
                puts("Sunday"); break;
            default:
                    puts("Error !");

    }
    return 0;
}
  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-12-24 18:44:08  更:2021-12-24 18:46:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 17:39:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码