2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > (C语言)有10个学生 每个学生的数据包括学号 姓名 3门课程的成绩 从键盘输入10个学

(C语言)有10个学生 每个学生的数据包括学号 姓名 3门课程的成绩 从键盘输入10个学

时间:2021-03-05 03:29:45

相关推荐

(C语言)有10个学生 每个学生的数据包括学号 姓名 3门课程的成绩 从键盘输入10个学

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

#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#define N 10struct student {int num;char name[1024];int score[3];};typedef struct student stu;void input(stu* p) {//输入for (int i = 0; i < N; ++i) {printf("请输入第%d个学生的信息\n", i + 1);printf("请输入num\n");scanf("%d", &(p + i)->num);printf("请输入姓名\n");scanf("%s", &(p + i)->name);for (int j = 0; j < 3; ++j) {printf("请输入score%d\n", j + 1);scanf("%d", &(p + i)->score[j]);}}}void print(stu* p) {//输出printf("%d\t", p->num);printf("%s\t", p->name);for (int j = 0; j < 3; ++j) {printf("%d\t", p->score[j]);}}double aver(stu* p) {//计算平均分double sum = 0;for (int i = 0; i < 3; ++i) {sum += p->score[i];}return sum / N;}int excellect(stu* p) {//判断最高分,返回下标double sum = 0;double max = 0;int record = 0;for (int i = 0; i < N; ++i) {sum = 0;for (int j = 0; j < 3; ++j) {sum += (p + i)->score[j];}if (max < sum) {max = sum;record = i;}}return record;}void main() {stu a[N];stu* p = a;input(p);printf("学号\t姓名\t成绩1\t成绩2\t成绩3\t平均\n");for (int i = 0; i < N; i++) {print(p + i);printf("%f\n", aver(p + i));}printf("最高分的学生数据如下\n学号\t姓名\t成绩1\t成绩2\t成绩3\t平均\n");int n = excellect(p);print(p + n);printf("%f\n", aver(p + n));system("pause");}

(C语言)有10个学生 每个学生的数据包括学号 姓名 3门课程的成绩 从键盘输入10个学生数据 要求输出3门课程总平均成绩 以及最高分的学生的数据(包括学号 姓名 3门课程成绩 平均分数)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。