使用结构体类型处理组合数据演示文稿_第1页
使用结构体类型处理组合数据演示文稿_第2页
使用结构体类型处理组合数据演示文稿_第3页
使用结构体类型处理组合数据演示文稿_第4页
使用结构体类型处理组合数据演示文稿_第5页
已阅读5页,还剩94页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

使用结构体类型处理组合数据演示文稿目前一页\总数九十九页\编于十一点优选使用结构体类型处理组合数据目前二页\总数九十九页\编于十一点9.1定义和使用结构体变量9.2结构体数组9.3结构体指针9.4用结构体变量和结构体变量的指针作函数参数9.5用指针处理链表9.6提高部分目前三页\总数九十九页\编于十一点9.1定义和使用结构体变量9.1.1自己建立结构体类型9.1.2定义结构体类型变量9.1.3结构体变量的初始化和引用P248目前四页\总数九十九页\编于十一点9.1.1自己建立结构体类型P248用户自己建立由不同类型数据组成的组合型的数据结构,它称为结构体例如,一个学生的学号、姓名、性别、年龄、成绩、家庭地址等项,是属于同一个学生的,因此组成一个组合数据,如student_1的变量,反映它们之间的内在联系目前五页\总数九十九页\编于十一点structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];};由程序设计者指定了一个结构体类型structStudent它包括num,name,sex,age,score,addr等不同类型的成员目前六页\总数九十九页\编于十一点声明一个结构体类型的一般形式为:struct结构体名{成员表列};

类型名

成员名;目前七页\总数九十九页\编于十一点说明:(1)结构体类型并非只有一种,而是可以设计出许多种结构体类型,例如structteacherstructworkerstructdate等结构体类型各自包含不同的成员目前八页\总数九十九页\编于十一点说明:(2)成员可以属于另一个结构体类型。

structdate

{intmonth;

intday;intyear;

};

structstudent

{intnum;charname[20];charsex;intage;

structdatebirthday;

charaddr[30];

};目前九页\总数九十九页\编于十一点说明:(2)成员可以属于另一个结构体类型。

numnamesexagebirthdayaddrmonthdayyear目前十页\总数九十九页\编于十一点9.1.2定义结构体类型变量P250前面只是建立了一个结构体类型,它相当于一个模型,并没有定义变量,其中并无具体数据,系统对之也不分配存储单元。相当于设计好了图纸,但并未建成具体的房屋。为了能在程序中使用结构体类型的数据,应当定义结构体类型的变量,并在其中存放具体的数据。目前十一页\总数九十九页\编于十一点1.先声明结构体类型,再定义该类型变量声明结构体类型structstudent,可以用它来定义变量structstudentstudent1,student2;结构体类型名结构体变量名

目前十二页\总数九十九页\编于十一点1.先声明结构体类型,再定义该类型变量声明结构体类型structstudent,可以用它来定义变量structstudentstudent1,student2;10001ZhangXinM1990.5Shanghaistudent110002WangLiF2098Beijingstudent2目前十三页\总数九十九页\编于十一点2.在声明类型的同时定义变量structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}student1,student2;目前十四页\总数九十九页\编于十一点3.不指定类型名而直接定义结构体类型变量其一般形式为:struct{成员表列}变量名表列;

指定了一个无名的结构体类型。目前十五页\总数九十九页\编于十一点说明:(1)结构体类型与结构体变量是不同的概念,不要混同。只能对变量赋值、存取或运算,而不能对一个类型赋值、存取或运算。在编译时,对类型是不分配空间的,只对变量分配空间。目前十六页\总数九十九页\编于十一点(2)结构体类型中的成员名可以与程序中的变量名相同,但二者不代表同一对象。(3)对结构体变量中的成员(即“域”),可以单独使用,它的作用与地位相当于普通变量。目前十七页\总数九十九页\编于十一点9.1.3结构体变量的初始化和引用

例9.1把一个学生的信息放在一个结构体变量中,然后输出这个学生的信息。解题思路:先在程序中自己建立一个结构体类型,包括有关学生信息的各成员然后用它来定义结构体变量,同时赋以初值最后输出该结构体变量的各成员P91目前十八页\总数九十九页\编于十一点#include<stdio.h>voidmain(){structstudent{intnum;charname[20];charsex;charaddr[20];}student1={10101,“LiLin”,‘M’,“123BeijingRoad”};printf("NO.:%d\nname:%s\nsex:%c\naddress:%s\n",student1.num,,student1.sex,student1.addr);}目前十九页\总数九十九页\编于十一点#include<stdio.h>voidmain(){structstudent{intnum;charname[20];charsex;charaddr[20];}student1={10101,“LiLin”,‘M’,“123BeijingRoad”};printf("NO.:%d\nname:%s\nsex:%c\naddress:%s\n",student1.num,,student1.sex,student1.addr);}{}目前二十页\总数九十九页\编于十一点#include<stdio.h>voidmain(){structstudent{intnum;charname[20];charsex;charaddr[20];}student1={10101,“LiLin”,‘M’,“123BeijingRoad”};

……}student1.num=10010;对printf(“%s\n”,student1);不对目前二十一页\总数九十九页\编于十一点#include<stdio.h>voidmain(){structstudent{intnum;charname[20];charsex;charaddr[20];}student1={10101,“LiLin”,‘M’,“123BeijingRoad”};

……}structdatebirthday;student1.num=10010;对student1.birthday.month=11;对目前二十二页\总数九十九页\编于十一点#include<stdio.h>voidmain(){structstudent{intnum;charname[20];charsex;charaddr[20];}student1={10101,“LiLin”,‘M’,“123BeijingRoad”};

……}student2.num=student1.num;对sum=student1.num+student2.num;对student1.num++;对,student2;目前二十三页\总数九十九页\编于十一点#include<stdio.h>voidmain(){structstudent{intnum;charname[20];charsex;charaddr[20];}student1={10101,“LiLin”,‘M’,“123BeijingRoad”};

……}student2=student1;对,student2;scanf(“%d”,&student1.num);对scanf(“%d”,&student1);错目前二十四页\总数九十九页\编于十一点

例9.2输入两个学生的学号、姓名和成绩,输出成绩较高学生的学号、姓名和成绩解题思路:(1)定义两个结构相同的结构体变量student1和student2;(2)分别输入两个学生的学号、姓名和成绩;(3)比较两个学生的成绩,如果学生1的成绩高于学生2,就输出学生1的全部信息,如果学生2的成绩高于学生1,就输出学生2的全部信息。如果二者相等,输出2个学生的全部信息目前二十五页\总数九十九页\编于十一点#include<stdio.h>voidmain(){structstudent{intnum;charname[20];floatscore;}student1,student2;scanf("%d%s%f",&student1.num,

,&student1.score);scanf(“%d%s%f”,&student2.num,

,&student2.score);不能加&目前二十六页\总数九十九页\编于十一点printf("Thehigherscoreis:\n");if(student1.score>student2.score)printf("%d%s%6.2f\n",student1.num,

,student1.score);elseif(student1.score<student2.score)printf("%d%s%6.2f\n",student2.num,

,student2.score);else{printf("%d%s%6.2f\n",student1.num,

,student1.score); printf("%d%s%6.2f\n",student2.num,

,student2.score);}}目前二十七页\总数九十九页\编于十一点9.2结构体数组P255

例9.3有3个候选人,每个选民只能投票选一人,要求编一个统计选票的程序,先后输入被选人的名字,最后输出各人得票结果。目前二十八页\总数九十九页\编于十一点解题思路:设一个结构体数组,数组中包含3个元素每个元素中的信息应包括候选人的姓名(字符型)和得票数(整型)输入被选人的姓名,然后与数组元素中的“姓名”成员比较,如果相同,就给这个元素中的“得票数”成员的值加1输出所有元素的信息目前二十九页\总数九十九页\编于十一点#include<string.h>#include<stdio.h>structperson{charname[20];intcount;}leader[3]={“Li”,0,“Zhang”,0,“Sun”,0};全局的结构体数组namecountleader[0]Li0Zhang0Sun0目前三十页\总数九十九页\编于十一点voidmain(){inti,j;charleader_name[20];for(i=1;i<=10;i++) {scanf(“%s”,leader_name);for(j=0;j<3;j++) if(strcmp(leader_name,leader[j].name)==0)leader[j].count++;}for(i=0;i<3;i++)printf("%5s:%d\n“,leader[i].name,leader[i].count);}leader[j].count=leader[j].count+1;目前三十一页\总数九十九页\编于十一点voidmain(){inti,j;charleader_name[20];for(i=1;i<=10;i++) {scanf(“%s”,leader_name);for(j=0;j<3;j++) if(strcmp(leader_name,leader[j].name)==0)leader[j].count++;}for(i=0;i<3;i++)printf("%5s:%d\n“,leader[i].name,leader[i].count);}目前三十二页\总数九十九页\编于十一点说明:(1)定义结构体数组一般形式是①struct结构体名{成员表列}数组名[数组长度];②先声明一个结构体类型,然后再用此类型定义结构体数组:

结构体类型

数组名[数组长度];

如:structpersonleader[3];目前三十三页\总数九十九页\编于十一点说明:(2)对结构体数组初始化的形式是在定义数组的后面加上:={初值表列};

如:structpersonleader[3]={"Li",0,"Zhang",0,“Sun",0};目前三十四页\总数九十九页\编于十一点

例9.4有n个学生的信息(包括学号、姓名、成绩),要求按照成绩的高低顺序输出各学生的信息。解题思路:用结构体数组存放n个学生信息,采用选择法对各元素进行排序(进行比较的是各元素中的成绩)。目前三十五页\总数九十九页\编于十一点#include<stdio.h>#defineN5structstudent{intnum;charname[20];floatscore;};voidmain(){structstudentstu[N]={{10101,"Zhang",78},{10103,"Wang",98.5},{10106,"Li“,86},{10108,“Ling”,73.5},{10110,“Sun”,100}};structstudenttemp;inti,j,k;目前三十六页\总数九十九页\编于十一点printf("Theorderis:\n");for(i=0;i<N-1;i++){k=i;for(j=i+1;j<N;j++)if(stu[j].score>stu[k].score)k=j;temp=stu[k];stu[k]=stu[i];stu[i]=temp;}for(i=0;i<N;i++)printf("%6d%8s%6.2f\n",stu[i].num,stu[i].name,stu[i].score);printf("\n");}写法上与普通变量一致目前三十七页\总数九十九页\编于十一点9.3结构体指针P258指向结构体对象的指针变量既可以指向结构体变量,也可以用来指向结构体数组中的元素。但是,指针变量的基类型必须与结构体变量的类型相同。例如:structstudent*pt;目前三十八页\总数九十九页\编于十一点

例9.5通过指向结构体变量的指针变量输出结构体变量中成员的信息。解题思路:在已有的基础上,本题要解决两个问题:怎样对结构体变量成员赋值;怎样通过指向结构体变量的指针访问结构体变量中成员。目前三十九页\总数九十九页\编于十一点#include<stdio.h>#include<string.h>voidmain(){structstudent{longnum;charname[20];charsex;floatscore;};……目前四十页\总数九十九页\编于十一点

structstudentstu_1;

structstudent*p;

p=&stu_1;

stu_1.num=10101;strcpy(stu_1.name,“LiLin”);stu_1.sex='M‘;stu_1.score=89.5;printf("No.:%ld\n”,stu_1.num);printf("name:%s\n",stu_1.name);printf("sex:%c\n”,stu_1.sex);printf(”score:%5.1f\n”,stu_1.score);}stu_110101LiLinM89.5p目前四十一页\总数九十九页\编于十一点structstudentstu_1;structstudent*p;p=&stu_1;stu_1.num=10101;strcpy(stu_1.name,“LiLin”);stu_1.sex='M‘;stu_1.score=89.5;printf("No.:%ld\n”,stu_1.num);printf("name:%s\n",stu_1.name);printf("sex:%c\n”,stu_1.sex);printf(”score:%5.1f\n”,stu_1.score);}stu_110101LiLinM89.5p(*p).num(*p).name(*p).sex(*p).score目前四十二页\总数九十九页\编于十一点说明:为了使用方便和直观,允许把(*p).num用p->num来代替(*p).name等价于p->name如果p指向一个结构体变量stu,以下等价:①stu.成员名(如stu.num)②(*p).成员名(如(*p).num)p->成员名(如p->num)目前四十三页\总数九十九页\编于十一点

例9.6有3个学生的信息,放在结构体数组中,要求输出全部学生的信息。目前四十四页\总数九十九页\编于十一点解题思路:用指向结构体变量的指针处理(1)声明structstudent,并定义结构体数组、初始化(2)定义指向structstudent类型指针p(3)使p指向数组首元素,输出元素中各信息(4)使p指向下一个元素,输出元素中各信息(5)再使p指向结构体数组的下一个元素,输出它指向的元素中的有关信息目前四十五页\总数九十九页\编于十一点#include<stdio.h>structstudent{intnum;charname[20];charsex;intage;};structstudentstu[3]={{10101,"LiLin",'M',18},{10102,"ZhangFun",'M',19},{10104,"WangMin",'F',20}};目前四十六页\总数九十九页\编于十一点voidmain(){structstudent*p;printf("No.Namesexage\n");for(p=stu;p<stu+3;p++)printf(“%5d%-20s%2c%4d\n”,p->num,p->name,p->sex,p->age);}10101LiLinM1810102ZhangFangM1910104WangMinF20stu[0]stu[1]stu[2]目前四十七页\总数九十九页\编于十一点voidmain(){structstudent*p;printf("No.Namesexage\n");for(p=stu;p<stu+3;p++)printf(“%5d%-20s%2c%4d\n”,p->num,p->name,p->sex,p->age);}10101LiLinM1810102ZhangFangM1910104WangMinF20pstu[0]stu[1]stu[2]目前四十八页\总数九十九页\编于十一点voidmain(){structstudent*p;printf("No.Namesexage\n");for(p=stu;p<stu+3;p++)printf(“%5d%-20s%2c%4d\n”,p->num,p->name,p->sex,p->age);}10101LiLinM1810102ZhangFangM1910104WangMinF20pstu[0]stu[1]stu[2]目前四十九页\总数九十九页\编于十一点voidmain(){structstudent*p;printf("No.Namesexage\n");for(p=stu;p<stu+3;p++)printf(“%5d%-20s%2c%4d\n”,p->num,p->name,p->sex,p->age);}10101LiLinM1810102ZhangFangM1910104WangMinF20pstu[0]stu[1]stu[2]目前五十页\总数九十九页\编于十一点9.4用结构体变量和结构体变量的指针作函数参数P262将一个结构体变量的值传递给另一个函数,有3个方法。目前五十一页\总数九十九页\编于十一点(1)用结构体变量的成员作参数。

例如,用stu[1].num或stu[2].name作函数实参,将实参值传给形参。用法和用普通变量作实参是一样的,属于“值传递”方式。应当注意实参与形参的类型保持一致。目前五十二页\总数九十九页\编于十一点(2)用结构体变量作实参。用结构体变量作实参时,将结构体变量所占的内存单元的内容全部按顺序传递给形参,形参也必须是同类型的结构体变量在函数调用期间形参也要占用内存单元。这种传递方式在空间和时间上开销较大在被调用函数期间改变形参(也是结构体变量)的值,不能返回主调函数一般较少用这种方法目前五十三页\总数九十九页\编于十一点(3)用指向结构体变量(或数组元素)的指针作实参,将结构体变量(或数组元素)的地址传给形参。目前五十四页\总数九十九页\编于十一点

例9.7有N个结构体变量stu,内含学生学号、姓名和3门课程的成绩。要求输出平均成绩最高的学生的信息(包括学号、姓名、3门课程成绩和平均成绩)。目前五十五页\总数九十九页\编于十一点解题思路:按照功能函数化的思想,分别用3个函数来实现不同的功能:用input函数输入数据和求各学生平均成绩用max函数找平均成绩最高的学生用print函数输出成绩最高学生的信息在主函数中先后调用这3个函数,用指向结构体变量的指针作实参。最后得到结果。本程序假设N=3目前五十六页\总数九十九页\编于十一点#include<stdio.h>#defineN3structstudent{intnum;charname[20];floatscore[3];floataver;};4个成员输入前3个成员值计算最后成员值目前五十七页\总数九十九页\编于十一点voidmain(){voidinput(structstudentstu[]);structstudentmax(structstudentstu[]);voidprint(structstudentstu);structstudentstu[N],*p=stu;input(p);print(max(p));}目前五十八页\总数九十九页\编于十一点voidinput(structstudentstu[]){inti;printf("请输入各学生的信息:

学号、姓名、三门课成绩:\n");for(i=0;i<N;i++){scanf("%d%s%f%f%f",&stu[i].num,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);

stu[i].aver=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;}}输入第1个成员值输入第2个成员值输入第3个成员值计算第4个成员值stu[0]stu[1]stu[2]stu10101Li78899888.33i=0目前五十九页\总数九十九页\编于十一点voidinput(structstudentstu[]){inti;printf("请输入各学生的信息:

学号、姓名、三门课成绩:\n");for(i=0;i<N;i++){scanf("%d%s%f%f%f",&stu[i].num,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);

stu[i].aver=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;}}输入第1个成员值输入第2个成员值输入第3个成员值计算第4个成员值stu[0]stu[1]stu[2]stu10101Li78899888.3310103Wang98.5876984.83i=1目前六十页\总数九十九页\编于十一点voidinput(structstudentstu[]){inti;printf("请输入各学生的信息:

学号、姓名、三门课成绩:\n");for(i=0;i<N;i++){scanf("%d%s%f%f%f",&stu[i].num,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);

stu[i].aver=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;}}输入第1个成员值输入第2个成员值输入第3个成员值计算第4个成员值stu[0]stu[1]stu[2]stu10101Li78899888.3310103Wang98.5876984.8310106Sun8876.58984.5i=2目前六十一页\总数九十九页\编于十一点structstudentmax(structstudentstu[]){inti,m=0;for(i=0;i<N;i++)if(stu[i].aver>stu[m].aver)m=i;returnstu[m];}

stu[0]stu[1]stu[2]stu10101Li78899888.3310103Wang98.5876984.8310106Sun8876.58984.5最大返回目前六十二页\总数九十九页\编于十一点voidprint(structstudentstud){printf("\n成绩最高的学生是:\n"); printf("学号:%d\n姓名:%s\n

三门课成绩:%5.1f,%5.1f,%5.1f\n

平均成绩:%6.2f\n”,stud.num,,stud.score[0],stud.score[1],stud.score[2],stud.aver);}stud10101Li78899888.3310103Wang98.5876984.8310106Sun8876.58984.5numnamescoreaverstu[0]stu[1]stu[2]目前六十三页\总数九十九页\编于十一点以上3个函数的调用,情况各不相同:调用input函数时,实参是指针变量,形参是结构体数组,传递的是结构体元素的地址,函数无返回值。调用max函数时,实参是指针变量,形参是结构体数组,传递的是结构体元素的地址,函数的返回值是结构体类型数据。调用print函数时,实参是结构体变量,形参是结构体变量,传递的是结构体变量中各成员的值,函数无返回值。目前六十四页\总数九十九页\编于十一点9.5用指针处理链表什么是线性链表9.5.2建立简单的静态链表9.5.3建立动态链表P265目前六十五页\总数九十九页\编于十一点什么是线性链表P265链表是一种常见的重要的数据结构它是动态地进行存储分配的一种结构head12491249A135613561475B1475C10211021D\0头指针各结点地址不连续各结点含有两个部分表尾目前六十六页\总数九十九页\编于十一点链表是一种常见的重要的数据结构它是动态地进行存储分配的一种结构链表必须利用指针变量才能实现目前六十七页\总数九十九页\编于十一点structstudent{intnum;

floatscore;

structstudent*next;}a,b,c;1010189.510103901010785a结点b结点c结点a.next=&b;b.next=&c;numscorenext目前六十八页\总数九十九页\编于十一点9.5.2建立简单的静态链表P266

例9.8建立一个如图所示的简单链表,它由3个学生数据的结点组成,要求输出各结点中的数据。1010189.510103901010785a结点b结点c结点numscorenext目前六十九页\总数九十九页\编于十一点解题思路:1010189.510103901010785a结点b结点c结点numscorenextheadhead=&a;a.next=&b;b.next=&c;NULLc.next=NULL;目前七十页\总数九十九页\编于十一点#include<stdio.h> structstudent{intnum;floatscore;structstudent*next;};目前七十一页\总数九十九页\编于十一点voidmain(){structstudenta,b,c,*head,*p;a.num=10101;a.score=89.5;b.num=10103;b.score=90;c.num=10107;c.score=85;head=&a;a.next=&b;b.next=&c;c.next=NULL;p=head;do{printf(“%ld%5.1f\n”,p->num,p->score);p=p->next; }while(p!=NULL);}目前七十二页\总数九十九页\编于十一点

p=head;do{printf(“%ld%5.1f\n”,p->num,p->score);p=p->next; }while(p!=NULL);}1010189.510103901010785a结点b结点c结点numscorenextheadNULLp相当于p=&b;目前七十三页\总数九十九页\编于十一点

p=head;do{printf(“%ld%5.1f\n”,p->num,p->score);p=p->next; }while(p!=NULL);}1010189.510103901010785a结点b结点c结点numscorenextheadNULLp相当于p=&b;目前七十四页\总数九十九页\编于十一点

p=head;do{printf(“%ld%5.1f\n”,p->num,p->score);p=p->next; }while(p!=NULL);}1010189.510103901010785a结点b结点c结点numscorenextheadNULLp相当于p=&c;目前七十五页\总数九十九页\编于十一点

p=head;do{printf(“%ld%5.1f\n”,p->num,p->score);p=p->next; }while(p!=NULL);}1010189.510103901010785a结点b结点c结点numscorenextheadNULLp相当于p=&c;目前七十六页\总数九十九页\编于十一点

p=head;do{printf(“%ld%5.1f\n”,p->num,p->score);p=p->next; }while(p!=NULL);}1010189.510103901010785a结点b结点c结点numscorenextheadNULLp相当于p=NULL;静态链表目前七十七页\总数九十九页\编于十一点9.5.3建立动态链表P267所谓建立动态链表是指在程序执行过程中从无到有地建立起一个链表,即一个一个地开辟结点和输入各结点数据,并建立起前后相链的关系。目前七十八页\总数九十九页\编于十一点

例9.9建立一个有2名学生学号和成绩数据的单向动态链表。解题思路:定义结构体变量,其成员包括学号、成绩和指针变量。动态地开辟一个新单元(动态开辟内存单元用malloc函数)。使指针变量p和head指向此结点。向此结点输入数据。目前七十九页\总数九十九页\编于十一点

例9.9建立一个有2名学生学号和成绩数据的单向动态链表。解题思路:再开辟第2个新结点,并使指针变量p指向此结点。使第2个结点中的指针变量的值为NULL,即不指向任何对象,链表到此为止。输出两个结点中的数据。目前八十页\总数九十九页\编于十一点#include<stdio.h>#include<malloc.h>#defineLENsizeof(structstudent)structstudent{intnum;floatscore;structstudent*next;};structstudent类型数据的长度目前八十一页\总数九十九页\编于十一点voidmain(){structstudent*head,*p;head=p=(structstudent*)malloc(LEN);scanf(“%d,%f”,&p->num,&p->score);p=(structstudent*)malloc(LEN);

headp1010189.5目前八十二页\总数九十九页\编于十一点voidmain(){structstudent*head,*p;head=p=(structstudent*)malloc(LEN);scanf(“%d,%f”,&p->num,&p->score);p=(structstudent*)malloc(LEN);scanf(“%d,%f”,&p->num,&p->score);head->next=p;p=head;

head1010189.5p1010290p->next=NULL;NULL目前八十三页\总数九十九页\编于十一点voidmain(){structstudent*head,*p;head=p=(structstudent*)malloc(LEN);scanf(“%d,%f”,&p->num,&p->score);p=(structstudent*)malloc(LEN);scanf(“%d,%f”,&p->num,&p->score);head->next=p;p=head;

head1010189.5p1010290p->next=NULL;NULL目前八十四页\总数九十九页\编于十一点voidmain(){structstudent*head,*p;head=p=(structstudent*)malloc(LEN);scanf(“%d,%f”,&p->num,&p->score);p=(structstudent*)malloc(LEN);scanf(“%d,%f”,&p->num,&p->score);head->next=p;p->next=NULL;p=head;printf(“结点1:%d,%6.2f\n”,p->num,p->score);p=p->next;1010189.5p1010290NULL结点1:10101,89.50目前八十五页\总数九十九页\编于十一点voidmain(){structstudent*head,*p;head=p=(structstudent*)malloc(LEN);scanf(“%d,%f”,&p->num,&p->score);p=(structstudent*)malloc(LEN);scanf(“%d,%f”,&p->num,&p->score);head->next=p;p->next=NULL;p=head;printf(“结点1:%d,%6.2f\

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论