s99q


私信TA

用户名:20206805

访问量:17571

签 名:

在否定中提升自己

等  级
排  名 290
经  验 5662
参赛次数 0
文章发表 91
年  龄 19
在职情况 学生
学  校 东大
专  业 软件工程

  自我简介:

代码是大一上学期写的,格式等都不规范,请多包涵。编写的代码,有些是为了练习库函数的使用,所以看着可能比较怪或者难以理解。

TA的其他文章


解题思路:

注意事项:

参考代码:

#include<stdio.h>
#include<malloc.h>
typedef struct student
{
char s_num[10];
char name[15];
int subject[3];
}stu;

int main()
{
int N,i = 0,j = 0 ,sum[3] = {0};                                   //在C语言中一般视大写的字母代表的是常量
scanf("%d", &N);
stu* p = (stu*)malloc(N * sizeof(stu));
for (i = 0; i < N;  i++)
scanf("%s%s%d%d%d", p[i].s_num, p[i].name, &p[i].subject[0], &p[i].subject[1], &p[i].subject[2]);
for (i = 0; i < N;  i++)                                         //通过for循环,实现了计总分,和最高分的查询
{
    sum[0]+=p[i].subject[0];                                    //续上:因为要找到最高的分数,因而必须要有循环,所以没有必要
    sum[1]+=p[i].subject[1];                                    //再设一个循环,在这个循环中就可以计算出总分和,最高分对应的j
    sum[2]+=p[i].subject[2];
        if((p[i].subject[0]+p[i].subject[1]+p[i].subject[2])>(p[j].subject[0]+p[j].subject[1]+p[j].subject[2]))
        {
              j = i;
        }
    }
    printf("%d %d %d\n",sum[0]/N,sum[1]/N,sum[2]/N);
    printf("%s %s %d %d %d", p[j].s_num, p[j].name, p[j].subject[0], p[j].subject[1], p[j].subject[2]);
}


 

0.0分

0 人评分

  评论区

  • «
  • »