| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1066 人关注过本帖
标题:acm题目 求改一下代码
只看楼主 加入收藏
hnsznj1998
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-12-27
结帖率:0
收藏
已结贴  问题点数:20 回复次数:4 
acm题目 求改一下代码
Description

有N个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入N个学生的数据,要求打印出3门课的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩)

Input

学生数量N占一行每个学生的学号、姓名、三科成绩占一行,空格分开。

Output

各门课的平均成绩
最高分的学生的数据(包括学号、姓名、3门课成绩)

Sample Input

2
1 blue 90 80 70
b clan 80 70 60
Sample Output

85 75 65
1 blue 90 80 70

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

char NO[100][20];
char name[100][20];
int score1[100],score2[100],score3[100];
int number,av,bv,cv;
int i = 0;

void input()
{
        int a,b,c;
        a=0,b=0,c=0;
        scanf("%d", &number);
        for(i=0;i<number;i++)
        {
                scanf("%s%s%d%d%d", &NO[i], &name[i], &score1[i], &score2[i], &score3[i]);
        }
        for(i=0;i<number;i++)
        {
            a+=score1[i];
            b+=score2[i];
            c+=score3[i];
        }
        av=a/number;
        bv=b/number;
        cv=c/number;

}

void print()
{   
    int n,m,temp;
     m=0;
     printf("%d %d %d\n",av,bv,cv);
    for(n=0;n<number-1;n++);
    {
    if((score1[n+1]+score2[n+1]+score3[n+1])>(score1[n]+score2[n]+score3[n]))
    m=n+1;
     else
     m=n
     }
    printf("%s %s %d %d %d",NO[m],name[m],score1[m],score2[m],score3[m]);
}
int main()
{
        input();
        print();
        return 0;
}


求改一下
搜索更多相关主题的帖子: 键盘 姓名 
2016-12-27 20:58
裘Pluto
Rank: 2
等 级:论坛游民
帖 子:6
专家分:11
注 册:2016-11-25
收藏
得分:10 
程序代码:
#include<stdio.h>

int N=100;

struct student

{

    char num[6];

    char name[8];

    int score[3];

} stu[100];

void input(struct student *Pst)
{

    int j;
    scanf("%s",(*Pst).num);
    scanf("%s",Pst->name);
    for(j=0; j<3; j++)
        scanf("%d",&(*Pst).score[j]);

}

int main()
{
    int i,grade[3],he,flag,max=0;
    scanf ("%d",&N);
    grade[0]=0;
    grade[1]=0;
    grade[2]=0;
    for(i=0; i<N; i++)
    {
        input(&stu[i]);
        grade[0]=stu[i].score[0]+grade[0];
        grade[1]=stu[i].score[1]+grade[1];
        grade[2]=stu[i].score[2]+grade[2];
        he=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];
        if(max<he)
            {max=he;
            flag=i;}
    }
    printf("%d %d %d\n",grade[0]/N,grade[1]/N,grade[2]/N);
    printf("%s %s %d %d %d",stu[flag].num,stu[flag].name,stu[flag].score[0],stu[flag].score[1],stu[flag].score[2]);
    return 0;
}
2016-12-27 21:20
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:10 
#include <stdio.h>

char NO[100][20];
char name[100][20];
int score1[100],score2[100],score3[100];
int number,av,bv,cv;
int i = 0;

void input()
{
    int a,b,c;
    a=0,b=0,c=0;
    scanf("%d", &number);
    for(i=0; i<number; i++)
    {
        scanf("%s%s%d%d%d", &NO[i], &name[i], &score1[i], &score2[i], &score3[i]);
    }
    for(i=0; i<number; i++)
    {
        a+=score1[i];
        b+=score2[i];
        c+=score3[i];
    }
    av=a/number;
    bv=b/number;
    cv=c/number;

}

void print()
{
    int n,m,temp;
    printf("%d %d %d\n",av,bv,cv);
    m=0;
    for(n=1; n<number; n++);
    {
        if((score1[n]+score2[n]+score3[n])>score1[m]+score2[m]+score3[m])
            m = n;
    }
    printf("%s %s %d %d %d",NO[m],name[m],score1[m],score2[m],score3[m]);
}
int main()
{
    input();
    print();
    return 0;
}

[此贴子已经被作者于2016-12-27 21:28编辑过]

2016-12-27 21:26
hnsznj1998
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-12-27
收藏
得分:0 
回复 2楼 裘Pluto
感谢解决问题了
2016-12-27 23:57
hnsznj1998
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-12-27
收藏
得分:0 
回复 3楼 吹水佬
感谢修改 已解决
2016-12-27 23:58
快速回复:acm题目 求改一下代码
数据加载中...
 
   



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

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