使用结构体数组统计男、女人数,计算全体学生的平均年龄、平均成绩,并将高于平均成绩的学生信息输出

《程序设计基础-c语言》杨莉 刘鸿翔  
ISBN-978-7-03-032903-5  
p165
习题6

3.输入10个学生的信息(包括学号、姓名、性别、年龄、成绩)组成结构体数组,分别统计男、女人数,计算全体学生的平均年龄、平均成绩,并将高于平均成绩的学生信息输出
思路:

  1. 使用两个结构体stuinfcnt1分别存储学生信息统计信息
  2. 使用for循环计算平均年龄和平均成绩
  3. 并用for循环嵌套if判断高于平均成绩的学生,并输出信息
#include<stdio.h>
#define MAX 10
struct count
{
	int mcnt;		/*女生人数*/ 
	int fcnt;		/*男生人数*/ 
	int ysum;		/*年龄总和*/ 
	int ssum;		/*成绩总和*/ 
	float yaver;	/*年龄平均*/ 
	float saver;	/*成绩平均*/ 
}cnt1;
struct stuinf
{
	int xuehao;		/*学号*/
	char name[20];	/*姓名*/
	char sex;		/*性别*/
	int year;		/*年龄*/
	float score;	/*成绩*/
}stu[MAX];
int main(void)
{
	int i;
	/*接受10位学生信息输入*/
	printf("输入%d的学生信息:\n",MAX);
	for(i=0;i<MAX;i++)
	{
		scanf("%d %s %c %d %f",&stu[i].xuehao,stu[i].name,&stu[i].sex,&stu[i].year,&stu[i].score);
	}
	/*判断*/
	for(i=0;i<MAX;i++)
	{
		if(stu[i].sex=='f'||stu[i].sex=='F')	/*'f'||'F',男生人数+1*/ 
		{
			cnt1.fcnt++;
		}
		else if(stu[i].sex=='m'||stu[i].sex=='M')	/*'m'||'M',女生人数+1*/ 
		{
			cnt1.mcnt++;
		}
		cnt1.ysum+=stu[i].year;		/*求年龄总和*/
		cnt1.ssum+=stu[i].score;	/*求成绩总和*/
	}
	cnt1.yaver=cnt1.ysum/MAX;		/*计算年龄平均*/
	cnt1.saver=cnt1.ssum/MAX;		/*计算成绩平均*/
	/*输出平均年龄、平均成绩*/
	printf("\n男生:%4d 女生:%4d 平均年龄:%4.f 平均成绩:%4.2f\n",cnt1.fcnt,cnt1.mcnt,cnt1.yaver,cnt1.saver);

	printf("\n输出大于平均成绩的学生信息:\n");
	for(i=0;i<MAX;i++)
	{
		if(stu[i].score>cnt1.saver)	/*大于平均成绩,即输出学生信息*/
		{
			printf("\n%d %s %c %d %.2f\n",stu[i].xuehao,stu[i].name,stu[i].sex,stu[i].year,stu[i].score);
		}
	}
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

折腾的小飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值