C语言程序设计 9.1输出平均分最高的学生信息

例9-1:假设学生的基本信息包括学号、姓名、三门课程成绩以及个人平均成绩。输入n个学生的成绩信息,计算并输出平均分最高的学生信息。

测试数据:

3
101 Zhang 78 87 85
102 Wang 91 88 90
103 Li 75 90 84

课本代码:

#include<stdio.h>
struct student  //学生信息结构定义 结构名student 
{
	int num;//类型名 结构成员名1 
	char name[10];
	int computer,English,math;
	double average;
};//以分号结束 
int main()//其中定义了两个结构变量s1 max
//结构变量可以通过结构成员操作符 . 对其某个成员进行引用 
{
	int i,n;//学生人数 n 
	struct student s1,max;//定义结构变量 
	printf("Input n: ");
	scanf("%d",&n);
	printf("Input the student's number, name and course scores\n");
	for(i=1;i<=n;i++)
	{
		printf("No.%d: ",i);
		scanf("%d%s%d%d%d",&s1.num ,s1.name ,&s1.math ,&s1.English ,&s1.computer );
		//输入学生信息 
		//结构变量的引用格式:结构变量名. 结构成员名 
		s1.average =(s1.math +s1.English +s1.computer )/3.0;//平均分的计算 
		if(i==1) max=s1;//结构变量的整体赋值 前提:两个结构变量有相同的类型 
		if(max.average<s1.average)
		  max=s1;//找出平均值最大 
	}
	printf("num:%d, name:%s, average:%.2lf\n",max.num ,max.name ,max.average );
	return 0;
}

运行结果:

num:102, name:Wang, average:89.67

结构也可以嵌套,但是得先定义成员的结构类型,再定义主结构类型。

struct address
{
	char city[10];//城市 
	char street[20];//街道 
	int code;//门牌号 
	int zip;//邮编 
};
struct nest_student
{
	int num;//学号
	char name[10];//姓名
	struct address addr;//定义通信地址成员
	//结构类型struct nest_student的成员变量addr被定义成结构类型struct address
	int computer,English,math;//学生成绩
	double average;//平均成绩 
}; 
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值