| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1881 人关注过本帖
标题:求助如何编写这个C语言代码,谢谢各位了。
只看楼主 加入收藏
Pluto鲸落
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2019-11-14
结帖率:100%
收藏
 问题点数:0 回复次数:9 
求助如何编写这个C语言代码,谢谢各位了。
要求如下:
可以输出10个以上学生的成绩、学号、姓名
对应五门科目(可输入任意科目名)
以二维表格的形式呈现出来他们的成绩,并在二维表格的行尾统计总分,列尾统计平均分
以此来形成一个成绩单

实在有点不会,拜托大神帮助!!!

[此贴子已经被作者于2019-11-19 08:04编辑过]

搜索更多相关主题的帖子: 编写 C语言 表格 成绩 代码 
2019-11-14 20:30
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:569
专家分:3707
注 册:2019-7-29
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <string.h>

struct chengji
{
    char name[20];
    float math;
    float chinese;
    float english;
    float chemistry;
    float physics;
    float sum;
    int id;
};


int main()
{
    struct chengji list[1000]={0};

    int n,i;

    printf("请输入学生总数:");
    scanf("%d",&n);

    for(i=1;i<=n;i++)
    {
        printf("\n请输入第%d个学生姓名及成绩:",i);
        scanf("%s%d%f%f%f%f%f",list[i].name,&list[i].id,&list[i].math,&list[i].chinese,&list[i].english,&list[i].chemistry,&list[i].physics);
        list[i].sum=list[i].math+list[i].chinese+list[i].english+list[i].chemistry+list[i].physics;
        list[0].math+=list[i].math;
        list[0].chinese+=list[i].chinese;
        list[0].english+=list[i].english;
        list[0].chemistry+=list[i].chemistry;
        list[0].physics+=list[i].physics;
    }

    printf("\t姓名\t学号\t数学\t语文\t英语\t化学\t物理\t总分\n");
    for (i=1;i<=n;i++)
    {
        printf("\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",list[i].name,list[i].id,list[i].math,list[i].chinese,list[i].english,list[i].chemistry,list[i].physics,list[i].sum);
    }

    printf("平均分:\t\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t\n",list[0].math,list[0].chinese,list[0].english,list[0].chemistry,list[0].physics);

    return 0;
}

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2019-11-14 21:22
Pluto鲸落
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2019-11-14
收藏
得分:0 
回复 2楼 纯蓝之刃
哇,太谢谢了大神了!感激不尽啊!
2019-11-18 19:55
Pluto鲸落
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2019-11-14
收藏
得分:0 
回复 2楼 纯蓝之刃
这个我自己调了多次发现平均数没求出来,求出来的是和,我自己试着改了改基本成功了,不过这最后一行怎么才能再添加一个总分的一个列平均值的输出呢?就是对应二维表格的每行学生的成绩再求个平均值。
还有这个如何还能添加个求最大值的一行添加到这个二维数组最后?
感激不尽啊!叨唠了!

[此贴子已经被作者于2019-11-20 22:51编辑过]

2019-11-20 22:43
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:569
专家分:3707
注 册:2019-7-29
收藏
得分:0 
回复 4楼 Pluto鲸落
printf("平均分:\t\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t\n",list[0].math/n,list[0].chinese/n,list[0].english/n,list[0].chemistry/n,list[0].physics/n);

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2019-11-20 22:48
Pluto鲸落
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2019-11-14
收藏
得分:0 
回复 5楼 纯蓝之刃

#include <string.h>

struct chengji
{
    char name[20];
    float math;
    float chinese;
    float english;
    float chemistry;
    float physics;
    float sum;
    float average;
    int id;
};


int main()
{
    struct chengji list[1000]={0};

    int n,i;

    printf("请输入学生总数:");
    scanf("%d",&n);

    for(i=1;i<=n;i++)
    {
        printf("\n请输入第%d个学生姓名、学号及成绩:(先回车后每输一个成绩换行)",i);
        scanf("%s%d%f%f%f%f%f",list[i].name,&list[i].id,&list[i].math,&list[i].chinese,&list[i].english,&list[i].chemistry,&list[i].physics);
        list[i].sum=list[i].math+list[i].chinese+list[i].english+list[i].chemistry+list[i].physics;
        list[0].math+=list[i].math;
        list[0].chinese+=list[i].chinese;
        list[0].english+=list[i].english;
        list[0].chemistry+=list[i].chemistry;
        list[0].physics+=list[i].physics;
        list[i].average=list[i].sum/5;
    }

    printf("\t姓名\t学号\t数学\t语文\t英语\t化学\t物理\t总分\n");
    for (i=1;i<=n;i++)
    {
        printf("\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",list[i].name,list[i].id,list[i].math,list[i].chinese,list[i].english,list[i].chemistry,list[i].physics,list[i].sum/5);
    }
   
 
    printf("平均分:\t\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t\n",list[0].math/i,list[0].chinese/i,list[0].english/i,list[0].chemistry/i,list[0].physics/i);
   
    return 0;
}
2019-11-20 22:52
Pluto鲸落
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2019-11-14
收藏
得分:0 
回复 5楼 纯蓝之刃
我改成了这样,您看一下
2019-11-20 22:52
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:569
专家分:3707
注 册:2019-7-29
收藏
得分:0 
不行,你这样i比n会大1的

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2019-11-20 23:02
Pluto鲸落
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2019-11-14
收藏
得分:0 
回复 8楼 纯蓝之刃
奥,确实,之前那个算的不对,谢谢啊。
我又试着加了一列求每个人总分的平均分,但是输出有问题,可否帮忙看看?

程序代码:
#include <stdio.h>
#include <string.h>

struct chengji
{
    char name[20];
    float math;
    float chinese;
    float english;
    float chemistry;
    float physics;
    float sum;
    float average;
    int id;
};


int main()
{
    struct chengji list[1000]={0};

    int n,i;

    printf("请输入学生总数:");
    scanf("%d",&n);

    for(i=1;i<=n;i++)
    {
        printf("\n请输入第%d个学生姓名、学号及成绩:(先回车后每输一个成绩换行)",i);
        scanf("%s%d%f%f%f%f%f",list[i].name,&list[i].id,&list[i].math,&list[i].chinese,&list[i].english,&list[i].chemistry,&list[i].physics);
        list[i].sum=list[i].math+list[i].chinese+list[i].english+list[i].chemistry+list[i].physics;
        list[0].math+=list[i].math;
        list[0].chinese+=list[i].chinese;
        list[0].english+=list[i].english;
        list[0].chemistry+=list[i].chemistry;
        list[0].physics+=list[i].physics;
        list[i].average=list[i].sum/5;
    }

    printf("\t姓名\t学号\t数学\t语文\t英语\t化学\t物理\t总分\t平均分\n");
    for (i=1;i<=n;i++)
    {
        printf("\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\%1f\n",list[i].name,list[i].id,list[i].math,list[i].chinese,list[i].english,list[i].chemistry,list[i].physics,list[i].sum/5, list[i].average);
    }
    

 
    printf("平均分:\t\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t\n",list[0].math/n,list[0].chinese/n,list[0].english/n,list[0].chemistry/n,list[0].physics/n);
    
    return 0;
}
2019-11-20 23:07
Pluto鲸落
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2019-11-14
收藏
得分:0 
回复 8楼 纯蓝之刃
大佬,如果我想求出这个成绩单的综合平均分最高的学生的成绩,在这个代码的原基础上怎么改呢?
2019-12-01 17:02
快速回复:求助如何编写这个C语言代码,谢谢各位了。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.058063 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved