View Code of Problem 82

#include<stdio.h>

typedef struct score
{
	double score1;
	double score2;
	double score3;
}score;

typedef struct student
{
	char num[10];
	char name[100];
	struct score grade;
}student; //½á¹¹Ìå 

int aver(student stu[],int n)
{
	double average[3];
	double sum1=0.0,sum2=0.0,sum3=0.0;
	int i;
	for(i=0;i<n;i++)
	{
		sum1 += stu[i].grade.score1;
		sum2 += stu[i].grade.score2;
		sum3 += stu[i].grade.score3;
	}
	average[0] = sum1/n;average[1] = sum2/n;
	average[2] = sum3/n;
	printf("%.0f %.0f %.0f\n",average[0],average[1],average[2]);
}

int max(student stu[],int n)
{
	double average[100];
	int sum=0;
	int max_num=0;
	for(int i=0;i<n;i++)
	{
		sum+=stu[i].grade.score1 + stu[i].grade.score2 + stu[i].grade.score3;
		//sum/=3.0;
		average[i] = sum;
		sum = 0;		
	}
	for(int j=1;j<n;j++)
	{
		if(average[j]>average[max_num])
		{
			max_num = j ;
		}
	}
	return max_num;
}
void display(student stu[],int i)
{
	printf("%s %s %.0f %.0f %.0f\n",stu[i].num,stu[i].name,
	stu[i].grade.score1,stu[i].grade.score2,stu[i].grade.score3);
}
int main()
{
	student stu[100];
	int n,i;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%s %s %lf %lf %lf",&stu[i].num,&stu[i].name,
		&stu[i].grade.score1,&stu[i].grade.score2,&stu[i].grade.score3);
  	}
  	aver(stu,n);
	int max_num = max(stu,n);
  	display(stu,max_num);
	return 0;
}

Double click to view unformatted code.


Back to problem 82