| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
大量收QQ微信精准粉/交友粉,非诚勿扰千里之行 始于足下
共有 548 人关注过本帖
标题:大一初学者求助一道编程题,马上期末了,救救孩子!
只看楼主 加入收藏
llylly1206
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2018-6-12
  问题点数:0  回复次数:5   
大一初学者求助一道编程题,马上期末了,救救孩子!
有5个学生,每个学生有3门课的成绩,从键盘输入以下数据(包括学号、姓名、3门课成绩),要求输出3门课的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩、平均分数)
要求:用一个input函数输入5个学生数据,用一个average函数求每个总平均成绩,用一个max函数找出最高分学生数据,总平均分和最高分的学生的数据都在主函数中输出

求完整编程程序,要用到结构体

救救孩子
谢谢🙏
2018-06-12 16:08
lu320
Rank: 1
等 级:新手上路
帖 子:4
专家分:1
注 册:2018-6-12
  得分:0 
#include<stdio.h>
#define N 20
#define M 5
struct student
{
    int num;
    char name[N];
    int score[M];
    double ave;
}stu[M];
void average()
{
    int i,j;
    double s;
    for(i=0;i<M;i++)
    {
        s=0;
        for(j=0;j<3;j++)
        {
            s=s+stu[i].score[j];
        }
        stu[i].ave=s/3.0;
    }
}


void input()
{
    int i,j;
    for(i=0;i<M;i++)
    {
        scanf("%d",&stu[i].num);
        scanf("%s",stu[i].name);
        for(j=0;j<3;j++)
        {
            scanf("%d",&stu[i].score[j]);
        }
    }
}
   
int max()
{
    int i;
    double max;
    int count=0;
    for(i=0;i<M;i++)
    {
        if(stu[i].ave<=stu[i+1].ave)
            {
                max=stu[i+1].ave;
                count=i+1;
            }
    }
    return count;
}
main()
{
    int count;
    int i;
    input();
    average();
    count=max();
    printf("学号%d\n",stu[count].num);
    printf("姓名%s\n",stu[count].name);
    printf("成绩\n");
    for(i=0;i<3;i++)
    printf("%d\n",stu[count].score[i]);
    printf("平均值%.2lf\n",stu[count].ave);
 }
2018-06-12 18:07
lu320
Rank: 1
等 级:新手上路
帖 子:4
专家分:1
注 册:2018-6-12
  得分:0 
写的不太好见谅毕竟新手
2018-06-12 18:08
llylly1206
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2018-6-12
  得分:0 
回复 3楼 lu320
谢谢你,非常感谢!!!
2018-06-12 23:10
lu320
Rank: 1
等 级:新手上路
帖 子:4
专家分:1
注 册:2018-6-12
  得分:0 
回复 4楼 llylly1206
不客气
2018-06-13 08:53
Sillydog
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2018-4-19
  得分:0 
#include<stdio.h>
#define M 5
#define N 3
struct student
{
    int num;
    char name[10];
    int score[N];
    double ave;
}stu[M];
void input()
{   
    int i,j;
    for(i=0;i<M;i++)
    {
        scanf("%d",&stu[i].num);
        getchar();
        scanf("%s",stu[i].name);
            for(j=0;j<3;j++)
            {
                scanf("%d",&stu[i].score[j]);
            }
    }
}
void average()
{
    int s=0;
    int i,j;
    for(i=0;i<M;i++)
    {
        for(j=0;j<N;j++)
        {
            s+=stu[i].score[j];
        }
        stu[i].ave=(s/N);
        s=0;
    }
}
int max()
{
    int id=0,i;
    int max=stu[0].ave;
    for(i=1;i<M;i++)
    {
        if(max<stu[i].ave)
        {
            max=stu[i].ave;
            id=i;
        }
    }
    return id;
}

int main(int argc, const char *argv[])
{
    int id;
    input();
    average();
    id=max();
    printf("num:%d\nname:%s\naverage:%lf\n",stu[id].num,stu[id].name,stu[id].ave);
    return 0;
}
2018-06-20 11:51







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

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