栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

树莓派(5)C语言实验六

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

树莓派(5)C语言实验六

实验六、结构体struct联合体union的应用

知识拓展:
在C语言中,可以使用结构体(Struct)来存放一组不同类型的数据。结构体的定义形式为: struct 结构体名{
结构体所包含的变量或数组
};

结构体是一种集合,它里面包含了多个变量或数组,它们的类型可以相同,也可以不同,每个这样的变量或数组都称为结构体的成员(Member)。

C语言中的union 是联合体,就是一个多个变量的结构同时使用一块内存区域,区域的取值大小为该结构中长度最大的变量的值。

联合”与“结构”有一些相似之处。但两者有本质上的不同。在结构中各成员有各自的内存空间, 一个结构变量的总长度是各成员长度之和。而在“联合”中,各成员共享一段内存空间, 一个联合变量的长度等于各成员中最长的长度。

traverseLinkedList.c 创建并遍历输出链表

(1)程序说明:利用定义结构体定义LNode指针节点,内部元素包括int类型变量 data,还有指向下一个LNode指针的next,实现初始化CreateList的方法,从控制台输入每个节点的值,以此来初始化链表实现print()函数来对链表进行遍历。

(2)实验代码:

#include
#include
#include


typedef struct LNode{
    int          data;
    struct LNode *next;
}LNode,*LinkList;
// 建立n个节点的链表
LinkList CreateList(int n);
void print(LinkList h);
int main()
{
    LinkList Head=NULL;
    int n;
    printf("请输入将要输入数字的个数:n");
    scanf("%d",&n);
    Head=CreateList(n);
    
    printf("刚刚建立的各个链表元素的值为:n");
    print(Head);
    
    printf("nn");
    return 0;
}
LinkList CreateList(int n)
{
    LinkList L,p;
    int i;
    L=(LNode*)malloc(sizeof(LNode));

    

   //    for(i=1;i<=n;i++)
//     {
//         ...
//         p=(LinkList)malloc(sizeof(LNode));
//         printf("请输入第%d个元素的值:",i);
//         scanf("%d",&(p->data));
//         ...
//     }
    return L;
}
void print(LinkList h)
{
    



}
unionAndStruct.c 在结构体中使用union合同体

(1)程序说明:
设计程序,用结构体来存储姓名、学号、性别、职业,并且使用union来存储教师的课程名称或者学生的考试分数。其中性别用字符’f’和’m’表示女性和男性,职业用’s’和’t’表示学生和老师。要求从控制台读入四位人员的信息(包括姓名、学号、性别、职业),并打印在输出台

例如:
示例输入:
HanXiaoXiao 501 f s 89.5
YanWeiMin 1011 m t math
LiuZhenTao 109 f t English
ZhaoFeiYan 982 m s 95.0
示例输出:
Name Num Sex Profession Score / Course
HanXiaoXiao 501 f s 89.500000
YanWeiMin 1011 m t math
LiuZhenTao 109 f t English
ZhaoFeiYan 982 m s 95.000000

(2)实验代码:

#include 
#include 
#define TOTAL 4  //人员总数

// 采用无名构造体 初始化了一个bodys数组,数组大小为TOTAL
struct{
    
    char name[20];
} bodys[TOTAL];  

int main(){
    int i;
    //输入人员信息
    for(i=0; i
            
    }

    //输出人员信息
    printf("nNamettNumtSextProfessiontScore / Coursen");
    for(i=0; i
        
    }
    return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/950176.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号