A1036 Boys vs Girls

本文讨论了使用C语言处理性别数据的过程,包括结构体的定义与应用,以及如何根据性别对个体进行分类与比较。通过实例展示了性别用整型表示的方法,并实现了根据性别区分最高与最低成绩的逻辑。

#include<stdio.h>
//#define LOCAL
 //还是需要结构体啊
//后来发现其实char gender是不需要的
 //char[2] gender={'M','F'};//根据经验,这样可能方便一点 
struct Per{
	int grade;
	char name[15];
	char gender;//性别直接用整型表示吧 
	char id[15];
}temp,ansm,ansf;//这样一看,好像和1006差不多 
int main(){
	#ifdef LOCAL
	freopen("A1036data.in","r",stdin);
	freopen("A1036data.out","w",stdout);
	#endif
	int n,m=0,f=0;//男生和女生初始都是0个人 
	scanf("%d",&n);
	ansm.gender='M';//其实gender变量可以不需要的
	ansm.grade=100;//因为寻找的是男生的最小成绩
	ansf.gender='F';
	ansf.grade=0; 
	while(n--){
		scanf("%s %c %s %d",temp.name,&temp.gender,temp.id,&temp.grade);//注意这个地方数组不要用@ 
	if(temp.gender=='M'){
		m++;
		if(temp.grade<ansm.grade){
			ansm=temp;
		}
	}
	else{
		f++;
		if(temp.grade>ansf.grade){
			ansf=temp;
		} 
	} 
	}
	//输出
	if(m==0&&f==0) 
	{
		printf("Absent\n");
		printf("Absent\n");
		printf("NA");
		return 0;
	}
	if(m==0)
		{
			printf("%s %s\n",ansf.name,ansf.id);
			printf("Absent\n");
			printf("NA");
			return 0;
		}	
	if(f==0)
		 {
		 	printf("Absent\n");
			 printf("%s %s\n",ansm.name,ansm.id);
		 	printf("NA");
		 	return 0;
		 }
	printf("%s %s\n",ansf.name,ansf.id);
	printf("%s %s\n",ansm.name,ansm.id);
	printf("%d\n",ansf.grade-ansm.grade);
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值