某班有5个学生, 每名学生的数据包括学号,姓名,3门课成绩,从键盘上输入5名学生数据,要求打印出3门课的总平均成绩以及最高分的学生数据(包括学号,姓名,3门课成绩)


 1 #define _CRT_SECURE_NO_WARNINGS        //关闭安全检查
 2 #include<stdio.h>
 3 #include<stdlib.h>
 4 
 5 //定义结构体类型
 6 struct ST
 7 {
 8     int ID;
 9     char name[20];
10     float score[3];
11 };
12 
13 //方法1 : 结构体数组作为函数参数 开销大
14 float avg(struct ST sts[], int n)
15 {
16     float sum = 0, avg;
17     for (int i = 0; i < n; i++)
18     {
19         for (int j = 0; j < 3; j++)
20         {
21             sum += sts[i].score[j];
22         }
23     }
24     avg = sum / n / 3;
25     return avg;
26 }
27 
28 //方法2 : 结构体数组指针作为函数参数 开销小
29 float avg1(struct ST *p, int n)
30 {
31     float sum = 0, avg;
32     for (int i = 0; i < n; i++)
33     {
34         for (int j = 0; j < 3; j++)
35         {
36             sum += p[i].score[j];
37         }
38     }
39     avg = sum / n / 3;
40     return avg;
41 }
42 
43 //输出最高分数学生信息
44 void high(struct ST *p, int n)
45 {
46     int index = 0;
47     float max = 0, sum = 0;
48     for (int i = 0; i < n; i++)
49     {
50         for (int j = 0; j < 3; j++)
51         {
52             sum = p[i].score[0] + p[i].score[1] + p[i].score[2];
53             if (sum > max)
54             {
55                 max = sum;
56                 index = i;
57             }
58         }
59     }
60     printf("最高学生信息为:\n");
61     //(p+index)->ID 等价于 p[index].ID
62     printf("学号:%d\n", (p+index)->ID);
63     printf("姓名:%s\n", p[index].name);
64     printf("成绩:%.2f, %.2f, %.2f\n", p[index].score[0], p[index].score[1], p[index].score[2]);
65 }
66 
67 int main()
68 {
69     int i, j;
70     struct ST sts[5];
71     for (i = 0; i < 5; i++)
72     {
73         printf("请输入第%d个学生信息\n", i+1);
74         scanf("%d", &sts[i].ID);
75         //加不加&都可以
76         scanf("%s", sts[i].name);
77         printf("输入各科成绩\n");
78         for (j = 0; j < 3; j++)
79         {
80             scanf("%f", &sts[i].score[j]);
81         }
82     }
83 
84     printf("平均成绩为:%f\n", avg1(sts, 5));
85     high(sts, 5);
86     system("pause");
87     return 0;
88 }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



猜您在找 有10个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键盘输人10个学生数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课程成绩、平均分数) java例题_50 题目:有五个学生,每个学生有 3 门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成 绩),计算出平均成绩,将原有的数据和计算出的平均分数存放在磁盘文件"stud"中。 读入n名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。 java从键盘输入学生成绩,找出最高分,并输出学生成绩等级。 从键盘读入学生成绩,找出最高分, 并输出学生成绩等级(Java) C语言之:结构体动态分配内存(利用结构体数组保存不超过10个学生的信息,每个学生的信息包括:学号、姓名和三门课(高数、物理和英语 )的成绩和平均分(整型)。) 有n个学生的信息(包括学号,姓名,成绩),要求按照成绩的高低顺序输出各学生的信息 计算学生成绩的最高分、最低分和平均分(数组全是方法) 2017.4.20实验三:2、定义一个包含学生学号、姓名、年龄和三门课成绩的结构体,输入10个学生信息,并按总成绩由高到低的顺序排序并输出。 查询每个学生的所选课程的最高成绩,要求列出学号、姓名、课程编号、分数
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM