Erick


私信TA

用户名:dotcpp0642224

访问量:310

签 名:

等  级
排  名 19715
经  验 709
参赛次数 0
文章发表 9
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:

注意事项:

参考代码:

#include<stdio.h>


struct transcript

{

char student_num[20];

char name[20];

int grade[3];

};//定义结构体,包含字符串和成绩数组


void input_fun(int count_0,struct transcript cell[]);//输入函数定义


void output_fun(int count_0,struct transcript cell[]);//输出函数定义


int main(void)

{

int n;

scanf("%d",&n);

struct transcript cell[n];//使用数组前,需要知道数组的大小,故要先scanf输入n

input_fun(n,cell);

output_fun(n,cell);

}


void input_fun(int count_0,struct transcript cell[])

{

int i,j;

for(i=0;i<count_0;i++){

scanf("%s %s",cell[i].student_num,cell[i].name);

for(j=0;j<3;j++){

scanf("%d",&cell[i].grade[j]);

}

}

}


void output_fun(int count_0,struct transcript cell[])

{

int grade[3];//成绩单数组

int SUM[3]={0,0,0};//单个科目总成绩初始化

int SUM_0[count_0];//个人总成绩

int i,j,p;//定义计数器

int flag;//寻找总成绩最高的标志位

int max;

//求单个科目总成绩

for(i=0;i<3;i++){

for(j=0;j<3;j++){

if(i==j){

for(p=0;p<count_0;p++){

SUM[i]+=cell[p].grade[j];

}

}

}

}

//个人总成绩初始化

for(i=0;i<count_0;i++){

SUM_0[i]=0;

}

//求个人总成绩

for(i=0;i<count_0;i++){

for(j=0;j<3;j++){

SUM_0[i]+=cell[i].grade[j];

}

}

//检查结果

// for(i=0;i<count_0;i++){

// printf("%d ",SUM_0[i]);

// }

// printf("\n");


//寻找成绩最高的个人

max=SUM_0[0];

flag=0;

for(i=1;i<count_0;i++){

if(max<SUM_0[i]){

max=SUM_0[i];

flag=i;

}

}

//单个科目平均值

for(i=0;i<3;i++){

grade[i]=SUM[i]/count_0;

}

//如下均为遍历输出

for(i=0;i<3;i++){

printf("%d",grade[i]);

if(i<2){

printf(" ");

}

if(i==2){

printf("\n");

}

}

printf("%s %s %d %d %d\n",cell[flag].student_num,cell[flag].name,cell[flag].grade[0],cell[flag].grade[1],cell[flag].grade[2]);

}


 

0.0分

0 人评分

  评论区

  • «
  • »