dotcpp-小鸟


私信TA

用户名:xiaoniao

访问量:36718

签 名:

等  级
排  名 227
经  验 6011
参赛次数 0
文章发表 28
年  龄 0
在职情况 学生
学  校 社会
专  业

  自我简介:

解题思路:

    通过结构体和数组来实现。首先通过结构体数组计算出总成绩,然后根据学生个数,输出每课的平均成绩。然后根据数组比较的方式,找出学生成绩和最大的那个数,及它的下标,通过下标输出成绩最好学生的信息。

注意事项:

    数组与结构体数组的联合使用;

参考代码:

#include<stdio.h>

struct xs//结构体
{
	char xh[50];
	char xm[50];
	int a,b,c;
};

int main()
{
	struct xs A[100];//结构体数组
	int y=0;//用来作数组的起始下标
	int N;
	int i;
	int p=0,o=0,m=0;//看作空容器,分别用来计算N个a课的总成绩、N个b课的总成绩、N个c课的总成绩
	int B[100];//看作空容器,用来计算数3课成绩;

	scanf("%d",&N);//输入学生数N;

	for(i=0;i<N;i++)//根据N个学生数,输入结构体数组的数据
	{
		scanf("%s%s%d%d%d",&A[i].xh,&A[i].xm,&A[i].a,&A[i].b,&A[i].c);

	}

	for(i=0;i<N;i++)//遍历,分别计算出N个a课的总成绩、N个b课的总成绩、N个c课的总成绩和每个学生的a+b+c课的总成绩;
	{
		p=p+A[i].a;
		o=o+A[i].b;
		m=m+A[i].c;
		B[i]=A[i].a+A[i].b+A[i].c;
	}

	for(i=0;i<N;i++)//通过B[N]个数组与B[0]比较,找出最大数也就是成绩最大数的,进而找出这个最大数的下标;
	{
		if(B[i]>B[y])
		{
			y=i;//最大数的下标,找到了;
		}
			
	}
    
	printf("%d %d %d\n",p/N,o/N,m/N);//输出平均成绩;
	printf("%s %s %d %d %d\n",A[y].xh,A[y].xm,A[y].a,A[y].b,A[y].c);//输出成绩最好学生的数据;
	return 0;
}


 

0.0分

0 人评分

  评论区