• 2022-06-09
    一、实验目的和要求1.掌握枚举类型的基本使用方法。2.掌握共用体的概念和应用。3.掌握结构体变量及结构体数组的定义和使用。二、实验内容和步骤有3个学生,每个学生的数据包括学号、姓名、性别、4门课的成绩,从键盘输入3个学生的数据,要求输出4门课的平均成绩,以及平均成绩最高的学生信息(包括学号、姓名、性别、4门课的成绩、平均分数)。同时要求用in函数输入3个学生数据;用aver函数求平均分;用max函数找出平均成绩最高的学生数据;学生的数据在out函数中输出。
  • 参考程序#include "stdio.h"#define NUM3struct student/*定义结构体*/{ long num;/*学号*/ char name[20];/*姓名*/ char sex;/*性别*/ float score[4];/*4门课成绩*/ float average;/*平均成绩*/} stu[NUM];void in()/*输入数据*/{ int i,j; for(i=0;i<;NUM;i++) { printf("\n please input No. %d data:\n",i); printf("student_No:"); scanf("%ld",&stu[i].num); printf("student_name:"); scanf("%s",stu[i].name); getchar(); printf("student_sex:"); scanf("%c",&stu[i].sex);//stu[i].sex=getchar(); getchar(); for(j=0;j<;4;j++) /*输入每个学生4门课成绩,并计算出总成绩*/ { printf("score %d:",j+1); scanf("%f",&stu[i].score[j]); } }}void aver(struct student stu_ave[],int n){ int i,j; float sum; for(i=0;i<;n;i++) { sum=0; stu_ave[i].average=0; for(j=0;j<;4;j++) sum+=stu_ave[i].score[j]; stu_ave[i].average=sum/4; }}void max(struct student stu_ave[],int n){ int i,j,k; float av; av=stu_ave[0].average;k=0; for(j=0;j<;n;j++) { if(av<;stu_ave[j].average) { av=stu_ave[j].average; k=j; } } printf("Score Max student is:");printf("\nNO Name Sex Score1 Score2 Score3 Score4 average\n");printf("%ld %s %c",stu_ave[k].num,stu_ave[k].name,stu_ave[k].sex);printf("%f %f %f %f %f\n",stu_ave[k].score[0],stu_ave[k].score[1],\ stu_ave[k].score[2],stu_ave[k].score[3],stu_ave[k].average); return;}void out()/*输出平均成绩*/{ int i; printf("\nst_NO\tst_average\n"); for(i=0;i<;NUM;i++) { printf("%ld\t%f\n",stu[i].num,stu[i].average); }}int main()/*主函数*/{ in(); aver(stu,NUM); out(); max(stu,NUM); return 0;}测试:[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]

    举一反三

    内容

    • 0

      3.有5个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生学号,姓名,三门课成绩),计算出平均成绩,将原有的数据和计算出的平均分数存放在磁盘文件“studata.txt”中。

    • 1

      【案例9】设计一个结构体,要求包括学生的学号、姓名、和三门课的成绩(成绩用数组存储)。编写程序输入5名学生的以上相关信息,求计算出每个学生总分和每个学生的三门课的平均分。要求:学生信息的输入和输出,以及总分与平均分的计算都以函数方式实现。

    • 2

      若有3名学生,每名学生的数据成员包括学号、姓名和3门课程的成绩,要求计算出每名学生3门课程的平均成绩,以及输出最高分学生的数据,包括学号、姓名、3门课程的成绩、平均成绩。

    • 3

      ⒊有5个学生,每个学生数据包括学号、姓名、性别、3门成绩、总成绩、平均成绩。从键盘输入学生成绩。然后用选择法按照总成绩由大到小对5个学生进行排序,最后输出排序的结果。要求输入、排序、输出用3个自定义函数实现。

    • 4

      实验9 结构体与共同体实验 1. 实验目的: (1) 掌握结构体和共同体的概念; (2) 能正确运用结构体类型解决实际的问题; (3) 了解共同体的应用 (4) 了解枚举类型和typedef的应用。 2. 实验内容: (1) 对下面的结构体 struct student { int num; char name[20]; char sex; };的变量s1进行初始化,并输入出结果。 (2) 有一个结构体变量stud,内含学生学号、姓名和四门成绩,要求在main函数中赋值,在另一函数pr中将它们输出,这里用结构体变量做函数参数。 (3) 对候选人得票的统计程序。设有3个候选人,每次输入一个得票的候选人的名字,要求最后输出各人得票结果。 (4) 建立一个学生档案的结构体数组,输入并输出学生的信息。要求输入和输出要写出函数。 (5) 定义描述三维坐标点(x,y,z)的结构体类型的变量,完成坐标点的输入和输出,并求两点之间的距离。 (6) 定义一个共同体,内含两个成员变量int i和char ch;要求输出整数从48到57的字符。 (7) 给出今天是星期几,输出100天后是星期几,用枚举类型实现。 (8) 有10个学生,每个学生的数据包括学号、姓名、英语、数学、物理三门课的成绩,从键盘输入10个学生数据,要求打印出3门课程的总平均成绩,以及最高分的学生的数据(包括学号,姓名,3门课的平均成绩,平均分数)