用c语言设计一个程序统计一个班的学生成绩?

利用函数思想设计一个程序统计某个班全体学生C语言课的考试成绩。要求能输入学生的成绩,再统计出该课程的全班总分、平均分,输出最高分和最低分的分数及对应的学生序号

#include<stdio.h>

#include<stdlib.h>

//定义一个学生结构体数组

struct Student{

int id;

double score;

}Student[100];

//记录实际导入学生个数

int len = 0;

//求最高分

void getmax() {

int maxid = 0;

double maxscore = -1;

for (int i = 0; i < len; i++) {

if (Student[i].score > maxscore) {

maxscore = Student[i].score;

maxid = Student[i].id;

}

}

printf("班级最高分为:%.2lf学号是:%d\n", maxscore, maxid);

}

//求最低分

void getmin() {

int minid = 0;

double minscore = 101;

for (int i = 0; i < len; i++) {

if (Student[i].score < minscore) {

minscore = Student[i].score;

minid = Student[i].id;

}

}

printf("班级最低分为:%.2lf学号是:%d\n", minscore, minid);

}

//求总分

double getsum() {

double sum = 0;

for (int i = 0; i < len; i++) {

sum += Student[i].score;

}

return sum;

}

//求平均分

double getave() {

double ave = 0;

return getsum() / len;

}

//导入学生信息

void input() {

int id = 0;

double score = 0;

while (1) {

printf("请输入学生学号:");

scanf_s("%d", &id);

if (id == -1) { break; }

printf("请输入学生成绩:");

scanf_s("%lf", &score);

Student[len].id = id;

Student[len].score = score;

len++;

}

printf("信息导入完毕!\n");

}

int main() {

input();

printf("全班总分为:%.2lf\n", getsum());

printf("全班平均分为:%.2lf\n", getave());

getmax();

getmin();

return 0;

}

注:此代码运行于VS2017,如果在VC6.0中运行,可将scanf_s改成scanf

并且for(int i=0;i<len;i++){xxx}改成int i=0;for(i=0;i<len;i++){xxx}即可正常运行

程序运行测试图如下:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-05-13

代码如下:

注:此代码运行于VS2017,如果在VC6.0中运行,可将scanf_s改成scanf

并且for(int i=0;i<len;i++){xxx}改成int i=0;for(i=0;i<len;i++){xxx}即可正常运行

#include<stdio.h>

#include<stdlib.h>

//定义一个学生结构体数组

struct Student{

int id;

double score;

}Student[100];

//记录实际导入学生个数

int len = 0;

//求最高分

void getmax() {

int maxid = 0;

double maxscore = -1;

for (int i = 0; i < len; i++) {

if (Student[i].score > maxscore) {

maxscore = Student[i].score;

maxid = Student[i].id;

}

}

printf("班级最高分为:%.2lf学号是:%d\n", maxscore, maxid);

}

//求最低分

void getmin() {

int minid = 0;

double minscore = 101;

for (int i = 0; i < len; i++) {

if (Student[i].score < minscore) {

minscore = Student[i].score;

minid = Student[i].id;

}

}

printf("班级最低分为:%.2lf学号是:%d\n", minscore, minid);

}

//求总分

double getsum() {

double sum = 0;

for (int i = 0; i < len; i++) {

sum += Student[i].score;

}

return sum;

}

//求平均分

double getave() {

double ave = 0;

return getsum() / len;

}

//导入学生信息

void input() {

int id = 0;

double score = 0;

while (1) {

printf("请输入学生学号:");

scanf_s("%d", &id);

if (id == -1) { break; }

printf("请输入学生成绩:");

scanf_s("%lf", &score);

Student[len].id = id;

Student[len].score = score;

len++;

}

printf("信息导入完毕!\n");

}

int main() {

input();

printf("全班总分为:%.2lf\n", getsum());

printf("全班平均分为:%.2lf\n", getave());

getmax();

getmin();

return 0;

}

程序运行测试图如下:

第2个回答  2022-04-02
设计一个学生成绩统计程序如下,一,输入三个学生密门课的成绩,二,计算班级平均分三统计0~59,60~69,70~79,80~89,90~100个区间的人数四。计算大于等于平均分的人数。本回答被网友采纳