知识拓展:
在C语言中,可以使用结构体(Struct)来存放一组不同类型的数据。结构体的定义形式为: struct 结构体名{
结构体所包含的变量或数组
};
结构体是一种集合,它里面包含了多个变量或数组,它们的类型可以相同,也可以不同,每个这样的变量或数组都称为结构体的成员(Member)。
C语言中的union 是联合体,就是一个多个变量的结构同时使用一块内存区域,区域的取值大小为该结构中长度最大的变量的值。
联合”与“结构”有一些相似之处。但两者有本质上的不同。在结构中各成员有各自的内存空间, 一个结构变量的总长度是各成员长度之和。而在“联合”中,各成员共享一段内存空间, 一个联合变量的长度等于各成员中最长的长度。
traverseLinkedList.c 创建并遍历输出链表(1)程序说明:利用定义结构体定义LNode指针节点,内部元素包括int类型变量 data,还有指向下一个LNode指针的next,实现初始化CreateList的方法,从控制台输入每个节点的值,以此来初始化链表实现print()函数来对链表进行遍历。
(2)实验代码:
#includeunionAndStruct.c 在结构体中使用union合同体#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) { }
(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; }



