C语言 输入10个学生5门课的成绩,分别使用函数实现下列功能 1.计算每个学生平均分 2.计算每门

C语言
输入10个学生5门课的成绩,分别使用函数实现下列功能
1.计算每个学生平均分
2.计算每门课平均分
3.找出所有50个分数中最高的分数所对应的学生和课程
4.找出有课程不及格的学生序号及其各门课成绩
5.找出单科成绩最高的学生序号并输出成绩
6.将学生按总分由高到低输出

#include<stdio.h>
int main()
{
void max(int [][5]);//注意二位数组传递参数时,行数信息可以省略,但一定列数不能
void averagek(int [][5]);
void averages(int [][5]);
int a[10][5],i;//后面很多没用上的变量就不需要了
for(i=0;i<=9;i++)
{
printf("请输入第%d名学生五科成绩(中间用空格隔开):",i+1);
scanf("%d %d %d %d %d",&a[i][0],&a[i][1],&a[i][2],&a[i][3],&a[i][4]);
}
averages(a);
averagek(a);
max(a);
return 0;
}
void averages(int a[][5])
{
int m,i;
for(i=0;i<=9;i++)
{
m=(a[i][0]+a[i][1]+a[i][2]+a[i][3]+a[i][4])/5;
printf("第%d名学生平均分为:%d\n",i+1,m);
}
}
void averagek(int a[][5])
{
int m,i;
for(i=0;i<=4;i++)
{
m=(a[0][i]+a[1][i]+a[2][i]+a[3][i]+a[4][i]+a[5][i]+a[6][i]+a[7][i]+a[8][i]+a[9][i])/10;
printf("第%d科成绩平均分为%d\n",i+1,m);//帮你加了个换行符,开始没加时好乱,信息全一起
}
}
void max(int a[][5])
{
int i,j,max,k,g;//你这里g后面多了逗号,小错误不要犯
max=a[0][0];
for(i=0;i<=9;i++)
for(j=0;j<=4;j++)
{
if(a[i][j]>max)
{
max=a[i][j];
k=i;
g=j;
}
}
printf("第%d名学生的第%d科成绩取得最高分:%d\n",k+1,g+1,max);//帮你加了个换行符,开始没加时好乱,信息全一起,还有就是个数要比数组下标多1,所以要加上去
}追问

没有做完啊,一共六个要求

温馨提示:内容为网友见解,仅供参考
第1个回答  2016-05-05
#include<stdio.h>
#include<math.h>

struct student
{
    int num;
    double a,b,c,d,e,sum;
};

int main()
{
    struct student s[10],pp;
    int saw,sbw,scw,sdw,sew,j,i;
    double t,sa,sb,sc,sd,se;
    for(i=0; i<10; i++)
        {
            printf("输入第%d个学生成绩\n",i+1);
            scanf("%lf %lf %lf %lf %lf",&s[i].a,&s[i].b,&s[i].c,&s[i].d,&s[i].e);
        s[i].sum=s[i].a+s[i].b+s[i].c+s[i].d+s[i].e;
        s[i].num=i+1;}
    for(i=0; i<10; i++)
    {
        sa+=s[i].a;
        sb+=s[i].b;
        sc+=s[i].c;
        sd+=s[i].d;
        se+=s[i].e;
    }
    for(i=0;i<10;i++)
    printf("第%d个学生平均分为:%.2lf\n",i+1,(s[i].sum)/5);
    printf("a,b,c,d,e门课平均分 分别为:  %.2lf %.2lf %.2lf %.2lf %.2lf\n",sa/10,sb/10,sc/10,sd/10,se/10);
    sa=sb=sc=sd=se=0;
    for(i=0; i<10; i++)
        if(sa<s[i].a)
        {
            sa=s[i].a;
            saw=i;
        }
    for(i=0; i<10; i++)
        if(sb<s[i].b)
        {
            sb=s[i].b;
            sbw=i;
        }
    for(i=0; i<10; i++)
        if(sc<s[i].c)
        {
            sc=s[i].c;
            scw=i;
        }
    for(i=0; i<10; i++)
        if(sd<s[i].d)
        {
            sd=s[i].d;
            sdw=i;
        }

    for(i=0; i<10; i++)
        if(se<s[i].e)
        {
            se=s[i].e;
            sew=i;
        }
    double x=sa;
    int mm=saw;
    if(x<sb)
    {
        x=sb;
        mm=sbw;
    }
    if(x<sc)
    {
        x=sc;
        mm=scw;
    }
    if(x<sd)
    {
        x=sd;
        mm=sdw;
    }
    if(x<se)
    {
        x=se;
        mm=sew;
    }


    printf("最高分数学生为%d 各科成绩为%.2lf %.2lf %.2lf %.2lf %.2lf\n",s[mm].num,s[mm].a,s[mm].b,s[mm].c,s[mm].d,s[mm].e);
    printf("不及格学生:\n");
    for(i=0; i<10; i++)
        if(s[i].a<60||s[i].b<60||s[i].c<60||s[i].d<60||s[i].e<60)
        {
            printf("序号%d 各科成绩: %.2lf %.2lf %.2lf %.2lf %.2lf\n",s[i].num,s[i].a,s[i].b,s[i].c,s[i].d,s[i].e);
        }
    t=0;
    for(i=0; i<10; i++)
        if(t<s[i].a)
        {
            t=s[i].a;
            mm=i;
        }
    printf("a科成绩最高学生序号%d 成绩:%.2lf %.2lf %.2lf %.2lf %.2lf\n",s[mm].num,s[mm].a,s[mm].b,s[mm].c,s[mm].d,s[mm].e);
    t=0;
    for(i=0; i<10; i++)
        if(t<s[i].b)
        {
            t=s[i].b;
            mm=i;
        }
    printf("b科成绩最高学生序号%d 成绩:%.2lf %.2lf %.2lf %.2lf %.2lf\n",s[mm].num,s[mm].a,s[mm].b,s[mm].c,s[mm].d,s[mm].e);
    t=0;
    for(i=0; i<10; i++)
        if(t<s[i].c)
        {
            t=s[i].c;
            mm=i;
        }
    printf("c科成绩最高学生序号%d 成绩:%.2lf %.2lf %.2lf %.2lf %.2lf\n",s[mm].num,s[mm].a,s[mm].b,s[mm].c,s[mm].d,s[mm].e);
    t=0;
    for(i=0; i<10; i++)
        if(t<s[i].d)
        {
            t=s[i].d;
            mm=i;
        }
    printf("d科成绩最高学生序号%d 成绩:%.2lf %.2lf %.2lf %.2lf %.2lf\n",s[mm].num,s[mm].a,s[mm].b,s[mm].c,s[mm].d,s[mm].e);
    t=0;
    for(i=0; i<10; i++)
        if(t<s[i].e)
        {
            t=s[i].e;
            mm=i;
        }
    printf("e科成绩最高学生序号%d 成绩:%.2lf %.2lf %.2lf %.2lf %.2lf\n",s[mm].num,s[mm].a,s[mm].b,s[mm].c,s[mm].d,s[mm].e);
for(i=0;i<10;i++)
    for(j=0;j<9-i;j++)
    if(s[j].sum<s[j+1].sum)
{
    pp=s[j];
    s[j]=s[j+1];
    s[j+1]=pp;
}
for(i=0;i<10;i++)
{
    printf("学生序号:%d 各科分数:%.2lf %.2lf %.2lf %.2lf %.2lf\n",s[i].num,s[i].a,s[i].b,s[i].c,s[i].d,s[i].e);

}
return 0;
}

第2个回答  2016-05-05
#include<stdio.h>
int main()
{
void max(int [][5]);//注意二位数组传递参数时,行数信息可以省略,但一定列数不能
void averagek(int [][5]);
void averages(int [][5]);
int a[10][5],i;//后面很多没用上的变量就不需要了
for(i=0;i<=9;i++)
{
printf("请输入第%d名学生五科成绩(中间用空格隔开):",i+1);
scanf("%d %d %d %d %d",&a[i][0],&a[i][1],&a[i][2],&a[i][3],&a[i][4]);
}
averages(a);
averagek(a);
max(a);
return 0;
}
void averages(int a[][5])
{
int m,i;
for(i=0;i<=9;i++)
{
m=(a[i][0]+a[i][1]+a[i][2]+a[i][3]+a[i][4])/5;
printf("第%d名学生平均分为:%d\n",i+1,m);
}
}
void averagek(int a[][5])
{
int m,i;
for(i=0;i<=4;i++)
{
m=(a[0][i]+a[1][i]+a[2][i]+a[3][i]+a[4][i]+a[5][i]+a[6][i]+a[7][i]+a[8][i]+a[9][i])/10;
printf("第%d科成绩平均分为%d\n",i+1,m);//帮你加了个换行符,开始没加时好乱,信息全一起
}
}
void max(int a[][5])
{
int i,j,max,k,g;//你这里g后面多了逗号,小错误不要犯
max=a[0][0];
for(i=0;i<=9;i++)
for(j=0;j<=4;j++)
{
if(a[i][j]>max)
{
max=a[i][j];
k=i;
g=j;
}
}
printf("第%d名学生的第%d科成绩取得最高分:%d\n",k+1,g+1,max);//帮你加了个换行符,开始没加时好乱,信息全一起,还有就是个数要比数组下标多1,所以要加上去
}
第3个回答  2016-04-28
得使用结构体吧?我帮你解决追问

使用函数

追答

可以解决 没问题 都能帮你实现

追问

嗯,什么时候给回复😂

追答

私信你了

追问

没呀

追答

看下我的名吧

...分别使用函数实现下列功能 1.计算每个学生平均分 2.计算每门_百度...
b,c,d,e,sum;};int main(){ struct student s[10],pp; int saw,sbw,scw,sdw,sew,j,i; double t,sa,sb,sc,sd,se; for(i=0; i<10; i++) { printf("输入第%d个学生成绩\\n",i+1); scanf("%lf %lf...

...人的5门课平均成绩,用自定义函数实现下列功能。 1:计算每个学生的平 ...
do{printf("请输入第%d个学生的姓名 学号 性别 数学成绩 英语成绩 C语言成绩:", i);struct Stu *s = stu + i - 1;scanf("%s %d %d %f %f %f", s->name, &s->id, &s->sex, &s->math, &s->eng, &s->c);i++;} while (i <= N);}void output_avg(struct Stu *stu)...

...输入4个学生5门课的成绩,分别用函数实现下列功能
float score[10][5],average[10],a1,a2,a3,a4,a5,largest=0,fc=0,a=0;\/\/score是50个学生的成绩,average是5门课的平均成绩,a1-a5分别是5门课的平均成绩,li是最高分的学生 \/\/lj是最高分的学科,largest是最高分,fc是平均分方差,a是50个成绩的平均分 printf("请输入10个学生的成绩...

C语言解答
1)计算所有学生的平均分;2) 计算学生成绩中最高分;3) 计算学生成绩中最低分;4) 统计及格学生人数;5) 查找成绩为指定成绩(如90)记录,如果没有,请给出提示,如果有,请统计满足条件的记录数。6、有一个已经排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中。(P153习题7.4)7、编写一个函数,...

...输入10个学生5门课的成绩,分别用函数实现下列功能: 1、计算每个学生...
你看谭浩强的c程序设计就可以了,而且你这个用指针也不复杂。自己动收写写。比较好。

...函数,输入3个学生2门课成绩,计算每个学生的平均分和每门课的平均分...
c=(c1+c2)\/2;printf("a学生的平均成绩是:\\n");printf("%d\\n",a);printf("b学生的平均成绩是:\\n");printf("%d\\n",b);printf("c学生的平均成绩是:\\n");printf("%d\\n",c);int a_c,a_c1;a_c=(a1+b1+c1)\/3;a_c1=(a2+b2+c2)\/3;printf("每门课的平均成绩是:\\n")...

...C语言的题“对学生成绩文件进行读写 完成下列功能:”
int i=0,j=0,iavg=0; \/\/i=数组个数,j=循环,iavg=高于平均成绩人数 float avg=0,sum=0; \/\/avg=平均成绩,sum=总成绩 printf("请输入成绩,按Ctrl+D结束:");while (scanf("%f",&num[i])) \/\/循环输入成绩 { sum+=num[i];i++;} avg=sum\/i;printf("平均分为%.1f\\n",avg);...

学生成绩管理系统(c语言程序设计)
学生成绩管理系统(c语言程序设计) 100 编制一个统计存储在文件中的学生考试分数的管理程序。设每个学生成绩以一个学生一条记录的形式存储在文件中,每个学生记录包含的信息有姓名、学号和各门功课的成绩(成绩包含两门以上... 编制一个统计存储在文件中的学生考试分数的管理程序。设每个学生成绩以一个学生一条记录的...

...编程:一个简单的学生成绩管理系统。其中每个学生信息包括学号、姓名...
编写一个菜单程序分别完成以下功能:每个学生的信息使用结构体变量存储。编写函数fu... 一个简单的学生成绩管理系统。其中每个学生信息包括学号、姓名、数学成绩、英语成绩、计算机成绩。编写一个菜单程序分别完成以下功能:每个学生的信息使用结构体变量存储。 编写函数fun1(),检查录入时的学号冲突情况,具体功能为:在录入...

C语言~输入5个学生的学号,成绩,按成绩排序(升序),查找90分以上的
j+1];stu[j+1]=temp;} } } printf("学生信息如下(姓名、学号、年龄、成绩、平均分):\\n");for(i=0;i<n;i++){ printf("%s%d%d",stu.name,stu.num,stu.age);for(j=0;j<3;j++)printf("%d",stu.score[j]);printf("%.2f\\n",stu.aver);} } ...

相似回答