输入5个学生4门课程的成绩,求(1)每个学生的总分(2)每门课程的平均分(3)输出总分最高的学生的姓名和总成绩

是c语言程序设计题,最好能告诉我分成几个模块,并把一个模块的程序标记出来。直接发到我的邮箱。l961110@sina.com,然后打上网名,我就知道是谁。
请快速回答,一天之内要结果,现有的我都不满意。
一定要用c语言做,c++也不行 完全无误我还追加

我曾经回答过一个问题,和你的类似。 题目如下,你可以参考一下:

/*

从键盘输入38个学生的基本数据,包括学号,姓名,性别以及3门课程的单科成绩。

(1) 计算每个学生3门课程的总分和平均成绩;

(2) 找出每门课程中成绩最好和成绩最差的学生,并输出这些学生的基本数据;

(3) 3门课程总成绩按由高分到低分的顺序排序,输出排序后的学生的基本数据。

*/

/*
VC++ 6.0测试通过。 键盘输入问题没解决,你自己去解决。 主要是要注意输入字符串的问题,特别是用scanf函数进行字符串输入的时候。我下面写的那个从键盘输入数据有问题,所以被我注释了。

还有我只用了5个学生做测试,你要用38个的话,把SIZE改成38,在数组初始化的时候初始化38个数据就行了。

学生的性别,我用'n'表示男,'v'表示女

Turbo C 2.01 测试通过,不过输出的信息比较多,我这边Turbo C查看运行结果是不能滚屏,所以显示不全,不知道你那边怎样

*/
#include <stdio.h>
#define SIZE 5

struct student
{
int num;
char name[100];
char sex;
double score1;
double score2;
double score3;
};

/* 输出学生信息 */
void print_student(struct student stu)
{
printf("num:%d\nname:%s\nsex:%c\nscore1:%f\nscore2:%f\nscore3:%f\n\n\n",stu.num,stu.name,stu.sex,stu.score1,stu.score2,stu.score3);
}

/* ---------------------------------------- */

/* 求每个学生三门课程的总分。 */
double score_Sum(struct student stu)
{
double sum=stu.score1;
sum+=stu.score2;
sum+=stu.score3;
return sum;
}

/* ---------------------------------------- */

/* 每个学生三门课的平均成绩 */
double scoreAvg(struct student stu)
{
return (score_Sum(stu)/3.0);
}

/* ---------------------------------------- */

/* 求score1最高和最低的学生 */
void score1(struct student stu[])
{
double min=stu[0].score1,max=stu[0].score1;
int index_min=0,index_max=0,i;
for(i=0;i<SIZE;i++)
{
if(min>stu[i].score1)
{
min=stu[i].score1;
index_min=i;
}
if(max<stu[i].score1)
{
max=stu[i].score1;
index_max=i;
}
}
printf("score1 max:\n");
print_student(stu[index_max]);
printf("score1 min:\n");
print_student(stu[index_min]);
}

/* ---------------------------------------- */

/* 求score2最高和最低的学生 */
void score2(struct student stu[])
{
double min=stu[0].score2,max=stu[0].score2;
int index_min=0,index_max=0,i;
for(i=0;i<SIZE;i++)
{
if(min>stu[i].score2)
{
min=stu[i].score2;
index_min=i;
}
if(max<stu[i].score2)
{
max=stu[i].score2;
index_max=i;
}
}
printf("score2 max:\n");
print_student(stu[index_max]);
printf("score2 min:\n");
print_student(stu[index_min]);
}

/* ---------------------------------------- */

/* 求score3最高和最低的学生 */
void score3(struct student stu[])
{
double min=stu[0].score3,max=stu[0].score3;
int index_min=0,index_max=0,i;
for(i=0;i<SIZE;i++)
{
if(min>stu[i].score3)
{
min=stu[i].score3;
index_min=i;
}
if(max<stu[i].score3)
{
max=stu[i].score3;
index_max=i;
}
}
printf("score3 max:\n");
print_student(stu[index_max]);
printf("score3 min:\n");
print_student(stu[index_min]);
}

/* ---------------------------------------- */

/* 按总分从高到低排序,并输出学生信息 */
void sortAndPrint(struct student stu[])
{
int i,j;
for(j=0;j<SIZE;j++)
{
for(i=j;i<SIZE-1;i++)
{
if(score_Sum(stu[i])<score_Sum(stu[i+1]))
{
struct student stu_t=stu[i];
stu[i]=stu[i+1];
stu[i+1]=stu_t;
}
}
}
for(i=0;i<SIZE;i++)
{
print_student(stu[i]);
}
}

/* ---------------------------------------- */

void main()
{
int i;
struct student stu[SIZE]=
{
{123456,"wangqiguo",'n',98,96,85},
{14523,"zhangsan",'v',98,85,74},
{15632,"lisi",'n',96,85,86},
{12563,"huliu",'v',85,96,86},
{12563,"zhujiang",'n',98,98,96}
};

/* 循环输入,这个有点问题,主要是输入格式方面我直接在程序里面进行的初始化,所以要从键盘里面输入的话,你要自己写了 */

/*
for(i=0;i<SIZE;i++)
{
printf("please input num,name,sex,score1,score2,score3 in stu[%d]:\n",i);
scanf("%d,%s,%c,%f,%f,%f",&stu[i].num,stu[i].name,&stu[i].sex,&stu[i].score1,&stu[i].score2,&stu[i].score3);
printf("\n");
}*/

/* 输出每个学生的总成绩和平均成绩 */
for(i=0;i<SIZE;i++)
{
printf("stu[%d] sum:%f,avg:%f\n",i,score_Sum(stu[i]),scoreAvg(stu[i]));
}

printf("\n\n\n\n\n-------------------------------------------------\n\n\n\n\n");

/* 分别输出score1、score2、score3科目的最高分,和最低分学生信息 */
score1(stu);
score2(stu);
score3(stu);

printf("\n\n\n\n\n-------------------------------------------------\n\n\n\n\n");

/* 按照总分高低顺序排序并输出 */
sortAndPrint(stu);

}
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-07-08
用Excel,记住要输入姓名、科目名称、总分等栏目
1.输入后在每一行后总分处按“求和”即得每个学生总分
2.在每门课程最方下按“求和”旁的小箭头选择“平均值”,即得每门课程的平均分
3.最后随便点一个有字的地方,按菜单栏“数据”选“排序”,在弹出的对话框中“主要关键字”选‘总分’,在选“降序”,按“确定”,即得学生成绩排名,最上面的就是最高分。

什么是c语言程序设计啊,我还是中学生,不知道啊
你还是别管我的回答了
不然你可以把学生成绩分别发上来,我帮你做Excel表格
第2个回答  2009-07-08
建立一个结构体,存学生姓名,四门课程成绩,以及总成绩,
第3个回答  2009-07-09
#include<stdio.h>

struct score{
char name[10];
int a,b,c,d;
};
int main()
{
int i=0;int sum[5];
score scr[5];
while (i<5)
{
printf("请输入第%d名学生的姓名\n",i);
scanf("%s",&scr[i].name);
printf ("请输入第%d名学生的四科成绩,每科成绩之间保留空格\n",i);
scanf("%d %d %d %d",&scr[i].a,&scr[i].b,&scr[i].c,&scr[i].d);
//printf ("请输入第%d名学生的四科成绩\n",i);
//scanf("%d",&scr[i].a );
//scanf("%d",&scr[i].b );
//scanf("%d",&scr[i].c );
//scanf("%d",&scr[i].d );
i++;
}
i=0;//重置计数器
//输出每个学生的总分
while(i<5)
{
sum[i]=scr[i].a+scr[i].b+scr[i].c+scr[i].d;
printf ("第%d名学生%s的总成绩为%d\n",i,scr[i].name,sum[i]);
i++;
}

//每门课程的平均分

int avr=(scr[0].a +scr[1].a +scr[2].a +scr[3].a+scr[4].a)/5;
printf ("a的平均成绩为%d\n",avr);
avr=(scr[0].b +scr[1].b +scr[2].b +scr[3].b+scr[4].b)/5;
printf ("b的平均成绩为%d\n",avr);
avr=(scr[0].c +scr[1].c +scr[2].c +scr[3].c+scr[4].c)/5;
printf ("c的平均成绩为%d\n",avr);
avr=(scr[0].d +scr[1].d +scr[2].d +scr[3].d+scr[4].d)/5;
printf ("d的平均成绩为%d\n",avr);
//输出总分最高的学生的姓名和总成绩

int max=sum[0];
i=0;
int j=0;
while (i<5){
if (sum[i]>max)
{
max=sum[i];
j=i;
}
i++;
}
printf("%s成绩最高,总成绩为%d\n",scr[j].name ,max);
}本回答被提问者采纳

输入5个学生4门课程的成绩,求(1)每个学生的总分(2)每门课程的平均分(3...
if(min>stu[i].score1){ min=stu[i].score1;index_min=i;} if(max<stu[i].score1){ max=stu[i].score1;index_max=i;} } printf("score1 max:\\n");print_student(stu[index_max]);printf("score1 min:\\n");print_student(stu[index_min]);} \/* --- *\/ \/* 求score2最...

输入5个学生4门功课的成绩,然后求出:A每个学生的总分B没门学科的平均分...
void main(){ char name[5][10];int score[5][4];int al[5];int i,j;int k[4];for (i=1;i<=5;i++){ scanf("%s %d %d %d %d\\n",&name[i],&score[i][1],&score[i][2],&score[i][3],&score[i][4]);} \/\/输入字符串,十进制,十进制,十进制,十进制 for ...

输入5名学生的4门课程成绩,求每门课程的最高分、每名学生的平均分以及总...
void pingjunfen(int *p);\/\/平均分 void zongfen(int *p);\/\/总分 main(){ int xuesheng[5][4]={{10,11,12,13},{20,21,22,23},{30,31,32,33},{40,41,42,43},{50,51,52,53}};zuigaofen(&xuesheng[0][0]);\/\/最高分 pingjunfen(&xuesheng[0][0]);\/\/平均分 zongfen(&...

...5学生4门课成绩后计算每学生的总分,每门课平均分,输出总分最高的学生...
scanf("%f",info[1].score+i);printf("请输入第三位学生的姓名:");scanf("%s",info[2].name);printf("请输入该学生四门课成绩:");for(i=0;i<=3;i++)scanf("%f",info[2].score+i);printf("请输入第四位学生的姓名:");scanf("%s",info[3].name);printf("请输入该学生四门...

从键盘输入5个学生4门课程的成绩,求每个人的总分与平均分。
printf("第%d个学生的信息:\\n",i+1);printf("姓名:%s\\n",adt.stud[i].name);for(j=0;j<claNum;j++){ printf("第%d门课成绩:%2.2f\\n",j+1,adt.stud[i].claRes[j]);printf("总分:%2.2f\\n",adt.stud[i].sum);adt.stud[i].avg=(float)adt.stud[i].sum\/claNum;printf(...

输入5个学生4门功课的成绩,然后求出(最好用函数模板): A.每个学生的总...
int t2;string t3;cout<<"学号\\t"<<"姓名\\t"<<"语文\\t"<<"数学\\t"<<"英语\\t"<<"物理\\t"<<"平均分"<<endl;for(int i=0;i<N;i++){ s2=0;for(int k=0;k<4;k++){ s2=s2+stu[i].score[k];average=s2\/4;} s[i]=average;} for(int n=0;n<N-1;n++)for(int ...

已知5个学生的4门课的成绩,要求求出每个学生的平均成绩,然后对平均成 ...
float a[5][4],b[5]={0,0,0,0,0},t;int i,j;printf("请输入5个同学4门功课的成绩:\\n");for(i=0;i<5;i++)for(j=0;j<4;j++)scanf("%f",&a[i][j]);for(i=0;i<5;i++)for(j=0;j<4;j++)b[i]+=a[i][j];for(j=0;j<4;j++)for(i=0;i<4-j;i++...

python输入五门成绩,求总分和平均分?
有5个学生,每个学生修4门课程,求每个学生所有成绩的总分和平均分 include <stdio.h> define First 5 define Second 6 int main(void){ float a[First][Second],sum=0.0;int i,j,cnt=1;printf("分别输入5名同学的4门成绩:\\n");for(i=0;i<First;i++){ for(j=0;j<Second-2;j...

c语言:有4个学生5门课,要求第一门课的平均分,以及找出2门以上课程不...
二、关于for循环的使用不是很规范,建议就算是只有一行代码也要用花括号括起来 三、我测试发现根本就是没有把相应的值存储到数组里面,吧%d改成%f 四、关于二位数组的指针(你是用一维的指针来实现二维的功能)你的用法没有错,但还是建议如我程序里面的形式使用 include<stdio.h> void average1(...

输入5个学生4门课的成绩,用函数计算每个学生的平均分
5 2016-05-13 C语言 输入10个学生5门课的成绩,分别使用函数实现下列功能... 14 2018-05-03 使其提示用户输入每个学生5门测试的成绩,一共5个学生,然后计... 2 2013-06-12 输入10个学生5门课的成绩,分别用函数实现下列功能:1.计算... 2 2017-11-23 c语言编程 输入4个学生5门课的成绩,分别用...

相似回答