用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
", 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
", 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("信息导入完毕!
");

}

int main() {

input();

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

printf("全班平均分为:%.2lf
", 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}即可正常运行

程序运行测试图如下:



代码如下:

注:此代码运行于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
", 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
", 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("信息导入完毕!
");

}

int main() {

input();

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

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

getmax();

getmin();

return 0;

}

程序运行测试图如下:



设计一个学生成绩统计程序如下,一,输入三个学生密门课的成绩,二,计算班级平均分三统计0~59,60~69,70~79,80~89,90~100个区间的人数四。计算大于等于平均分的人数。

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

改好了,问题不大,我都写在注释里了:

#include
#include
#define N 35
#define COURSE 4

struct student
{
char num[10];/*如果把num当作字符串的话,不能用int,而是char数组。不然就用int num;*/
float score[4];
float sum;
float aver;
}
stu[N];

void main()
{
void Input(struct student stu[]);
void count(struct student stu[]);
void sort(struct student stu[]);
void find(struct student stu[]);
sqrt(1.0);/*不知你用什么编译器,如果TC的话,有个BUG。就是结构体里有float型的话,要加这句,不然会报错*/
Input(stu);
count(stu);
find(stu);
/*为什么你的程序里没有执行着几个函数咧?*/

}
void Input(struct student stu[])
{
int i,j;
printf("Enter No.and score as :score1 score2 score3 score4
");
for (i=0;i<N;i++)
{
scanf("%s",stu[i].num);/*用%s输入字符串*/
for (j=0;j<COURSE;j++)
{
scanf("%f",&stu[i].score[j]);
}
}


}



void count(struct student stu[])
{
float sum,aver;
int i,j;
for(i=0;i<N;i++)
{
sum=0;
for(j=0;j<5;j++)
sum+=stu[i].score[j];
aver=sum/4;
stu[i].sum=sum;
stu[i].aver=aver;
}

}

void sort(struct student stu[])
{
int i,j,k;
struct student temp;
for(i=0;i<N;i++)
{
k=i;
for(j=i+1;j<N;j++)
if(stu[k].sum<stu[j].sum)k=j;
if(k!=i)
{
temp=stu[i];
stu[i]=stu[k];
stu[k]=temp;
}
}
printf("number score1 score2 score3 score4 sum average
");
for(i=0;i<N;i++)
printf("%-8s%-8.2f%-8.2f%-8.2f%-8.2f%-8.2f%-8.2f
",stu[i].num,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].sum,stu[i].aver);
/*输出学号也用%s*/
}

void find(struct student stu[])
{
int flag=0;
int i,j;
sort(stu) /*;//stu[];)*/

printf("the student of one score>=90 and 前五名:
");
/*这两句调换一下位置,不然输出不太好*/

for(i=0;i<5;i++)
{
int sum=0;
for(j=0;j<4;j++)
if(stu[i].score[j]>=90 )sum++;
if(sum)
{
flag=1;
printf("%-8s%-8.2f%-8.2f%-8.2f%-8.2f%-8.2f%-8.2f
",stu[i].num,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].sum,stu[i].aver);
}
}
if(flag==0)
printf(" not exist!
");
/*这个判断放在循环体之外,不然会输出好多" not exist!"*/

}

另外,注意:
1.个班的学生成绩最多35人。你的咋是固定35人捏?
2.第四点要求:根据用户要求输入课程号显示该门课程成绩在90以上且总分在前五的学生的 学号和各科成绩,平均分和总分

你似乎没有看清题意吧?是要用户输入课程号耶。

这些你自己应该知道怎么做吧?

仅供参考:
#include "stdio.h"#define N 35struct student{int num;//学号char name[8];//姓名int nannv;//性别int chines;//语文成绩int math;//数学成绩int English;//英语成绩int physics;//物理成绩int sum;//总分double avr;//平均分}stu[N];void input(int n){int i;for(i=0;i<n;i++){int sum=0;double avr=0.0;printf("请输入第%d个学生信息
",i+1);printf("请输入学号:");scanf("%d",&stu[i].num);printf("请输入姓名:");scanf("%s",stu[i].name);printf("请输入性别:");scanf("%d",&stu[i].nannv);printf("请输入语文成绩:");scanf("%d",&stu[i].chines);printf("请输入数学成绩:");scanf("%d",&stu[i].math);printf("请输入英语成绩:");scanf("%d",&stu[i].English);printf("请输入物理成绩:");scanf("%d",&stu[i].physics);//计算总分和平均分stu[i].sum = stu[i].chines+stu[i].math+stu[i].English+stu[i].physics;stu[i].avr = (double)(stu[i].sum*1.0/4);}}void output(int n){int i;for(i=0;i<n;i++){printf("------------------------------------------------------------------
");printf("第%d名:
",i+1);printf("学号:%d姓名:%s性别:%d
",stu[i].num,stu[i].name,stu[i].nannv);printf("语文成绩:%d数学成绩:%d英语成绩:%d物理成绩:%d
",stu[i].chines,stu[i].math,stu[i].English,stu[i].physics);printf("总分:%d平均分:%.2f
",stu[i].sum,stu[i].avr);printf("------------------------------------------------------------------
");}}void sort(int n){int i,j;struct student st;//冒泡排序for(i=0;i<n-1;i++){for(j=0;j<n-i-1;j++){if(stu[j].sum<stu[j+1].sum){st = stu[j];stu[j] = stu[j+1];stu[j+1] = st;}}}}void main(){int n;printf("请输入学生人数:");scanf("%d",&n);input(n);//输入学生信息sort(n);//按总成绩排序printf("排名信息如下:
");output(n);//输出学生信息}

用C语言编写一程序,统计N个学生的成绩信息。
答:printf("第%d个学生:\n",i+1);stud[i].mc=i+1;printf("输入学号:");scanf("%d",&stud[i].number);printf("输入姓名:");scanf("%s",stud[i].name);printf("输入数学成绩:");scanf("%lf",&stud[i].math);printf("输入英语成绩:");scanf("%lf",&stud[i].English);printf("...

C语言程序,请你编写一个程序计算每个学生的平均成绩
答:include<stdio.h> void main(){ float a[10][10];//用来存放10名学生的5门成绩,最后一位用于存放平均成绩 int i,j;float sum=0.0;for(i=0;i<10;i++){ printf("请输入第%d个学生的5门成绩",i+1);for(j=0;j<5;j++){ scanf("%f",&a[j]);sum=sum+a[j];} a[10]=sum/...

c语言问题,跪求高手解答,输入一个班学生的成绩,求全班的平均成绩。我...
答:do。。while语句的while(score>=0)有问题,你程序的意思是,输入成绩只要大于等于0就一直执行do语句,因为成绩通常没有复数的,所以是个死循环,这样后面的程序根本无法执行,应该改成while(n<=x-1) x是你需要设定的班级的人数,这样输入x个数就可以求x个人的平均成绩了。当然付初值n=0也是必须...

c语言程序设计实验
答:实验题目:输入一个班10个学生的学号和每个学生考试三门功课(数学、英语、计算机基础)的成绩。编程计算出每个学生的总分和平均分,并按学生成绩优劣排序,最后打印一张按高分到低分名次排序的成绩单。要求:1)排序用一个函数实现。2)打印的成绩单表项包括:序号,学号、数学、英语、计算机、总分、平均...

C语言 从键盘输入一个班的成绩 怎么用while语句实现的程序代码?_百度...
答:score / 10)){ case 10:case 9:grade = 'A'; break;case 8:grade = 'B'; break;case 7:grade = 'C'; break;case 6:grade = 'D'; break;case 5:case 4:case 3:case 2:case 1:case 0:grade = 'E';} printf("学生成绩是%5.1f:,等级是:%C。\n", score, grade);} ...

用C语言设计一个学生成绩统计程序,要求(1)输入30个学生一门功课的成绩...
答:include"stdio.h"void main(){ int n=0;int num;int zf=0;for(n=0;n<30;n++){ printf("请输入第%d个学生的成绩:",n+1);scanf("%d",&num);zf+=num;} printf("该门功课的班级平均分为:%d\n",zf/30);}

...每个学生含姓名、分数数据。编写一个程序,输入各
答:你好!程序要求也不少,什么时间交作业,可以尝试帮你完成,有个类似的,你看看

2、c语言:假定某班有40个同学参加了计算机等级考试,编写一个程序...
答:将所有同学的成绩全部加到一起,然后除以该班级的人数,然后用该班级总人数除以该班级通过人数,就能求出班级考试平均分和通过率。pp--8627--516---36--- for i=1 to 40 sum=sum+a(i)next i ave=sum/40 for i=1 to 40 if a(i)>ave then n=n+1 next i printf n ...

C语言作业编写一个程序输入学生分数,统计及格人数和算平均分
答:include<stdio.h>#include <stdlib.h>typedef struct list{ char number[10]; float mark;}COUNT;int main(){ COUNT aa[100]; int i; int count =0; float sum=0; for(i=1;i<=10;i++) { scanf("%s",aa[i].number); scanf("%g",&aa[i].mark)...

C语言编程 统计不同分数段学生人数
答:include<stdlib.h> int main(){ int score[10];//先定义十个学生 int i=0;int a[7]={0};//定义要求的a到h,并初始化 printf("please enter 10 students' score:\n");for(;i<10;i++){ scanf("%d",&score[i]);if(score[i]>40){ a[2]++;if(score[i]>60){ a[1]++;if...