数据结构实验指导与习题解析(C语言版)
定 价:¥25
中 教 价:¥18.75 (7.50折)
库 存 数: 0
丛 书 名:应用型本科信息大类专业“十三五”规划教材
《数据结构实验指导与习题解析(C语言版)》是与《数据结构从应用到实现(C语言版)》配套的辅助教材。本书分为两大部分,第一大部分,和教材中每章对应,每章的实验分“基本实验练习”,“自己动手做练习”和“综合应用实例”3个部分,力求综合应用课本中的知识,解决实际生活中的例子;第二大部分,对教材中的课后习题进行了详细解析。
实验1结构体基本练习实验 实验1 结构体基本练习实验
一、 实验目的 掌握结构体类型变量的定义和使用。
二、 基本实验练习 有n个学生的信息(包括学号、姓名、成绩),要求用键盘输入上述各项数据,按照成绩从低到高的顺序输出各学生的信息。 1. 定义一个结构体类型 typedef struct student { int no; /*学号*/ char name\[20\];/*姓名*/ double score;/*成绩*/ }STU; 2. 创建结构体数组 分析 为将创建好的结构体数组带回到主调函数,这里使用数组名作为形式参数。 void CreateStu(STU s\[\],int n) { int i; for(i=0;i { printf("请输入第%d个同学的学号:\\n",i+1); scanf("%d",&s\[i\].no); printf("请输入第%d个同学的姓名:\\n",i+1); scanf("%s",s\[i\].name); printf("请输入第%d个同学的成绩:\\n",i+1); scanf("%lf",&s\[i\].score); } } 3. 对结构体数组排序 分析这里采用冒泡排序对结构体数组进行排序,flag是数组元素交换的标志位,当一趟排序未出现两两元素交换则结束排序。 void SortStu(STU s\[\],int n) { int i,j,flag; STU t; for(i=0;i { flag=1; for(j=0;j if(s\[j+1\].score { flag=0; t=s\[j\]; s\[j\]=s\[j+1\]; s\[j+1\]=t; } if(flag) return; } } 4. 输出结构体数组 void PrintStu(STU s\[\],int n) { int i; printf("学号姓名 成绩\\n"); for(i=0;i { printf("%6d%9s%10.1lf\\n",s\[i\].no,s\[i\].name,s\[i\].score); } }
三、 自己动手做练习 在上述建立的学生信息结构体数组中,编写一个函数int SearchStu(STU s\[\],int n,int no)来实现在长度为n的学生信息结构体数组s中查找学号为no的学生,若找到了,输出查找到学生的完整信息,并返回学生所在的数组下标;否则,提示查找失败,返回-1。实现后的程序运行界面如图11所示。 图11实验1练习运行界面
四、 综合应用实例