录入一张百分制成绩单(字段为:学号,得分),设计一个程序求解最高分和平均分,并统计各分数段(每10分为一段)的人数

#include<stdio.h>
typedef struct
{
	int grade;
	char sno;
}student_grade;

void max_grade(student_grade sg[],int n)
{
	int i=0;
	for( int j=1;j<n;j++)
	{
		if(sg[j].grade>sg[i].grade)
		{
			i=j;
		}
	}
	printf("max grade:%d\n",sg[i].grade);
}

void average_grade(student_grade sg[],int n)
{
	int sum=0;
	for(int j=0;j<n;j++)
	{
		sum=sum+sg[j].grade;
	}
	printf("average grade id:%.2f\n",((float)sum)/n);
}

void statistic_nums(student_grade sg[],int n)
{
	int nums[10];
	int x;int i=0;
	for(;i<10;i++)
	{
		nums[i]=0;
	}
	for(i=0;i<n;i++)
	{
		x=sg[i].grade/10;
		switch(x)
		{
			case 0:nums[0]++;break;
			case 1:nums[1]++;break;
			case 2:nums[2]++;break;
			case 3:nums[3]++;break;
			case 4:nums[4]++;break;
			case 5:nums[5]++;break;
			case 6:nums[6]++;break;
			case 7:nums[7]++;break;
			case 8:nums[8]++;break;
			case 9:nums[9]++;break;
			case 10:nums[9]++;break;
			default:printf("erro\n");
		}
	}
	printf("0-9 num:%d\n",nums[0]);
	printf("10-19 num:%d\n",nums[1]);
	printf("20-29 num:%d\n",nums[2]);
	printf("30-39 num:%d\n",nums[3]);
	printf("40-49 num:%d\n",nums[4]);
	printf("50-59 num:%d\n",nums[5]);
	printf("60-69 num:%d\n",nums[6]);
	printf("70-79 num:%d\n",nums[7]);
	printf("80-89 num:%d\n",nums[8]);
	printf("90-100 num:%d\n",nums[9]);
}

int main()
{
	student_grade sg[6];
	sg[0].grade=88;
	sg[1].grade=66;
	sg[2].grade=99;
	sg[3].grade=29;
	sg[4].grade=77;
	sg[5].grade=77;

	max_grade(sg,6);
	average_grade(sg,6);
	statistic_nums(sg,6);
}

猜你喜欢

转载自blog.csdn.net/qq_34752068/article/details/84531628