C语言-学生信息管理(利用结构体、函数和指针)

**1.任务:**运用结构体、函数与指针,储存操作N个学生的信息(学号、姓名与成绩、平均分),并输出平均成绩最高的学生的信息。
2.功能函数:

  • Input()函数:输入数据和求各个学生的平均成绩
  • Max()函数:搜索平均成绩最高的学生
  • Print()函数:输出平均成绩最高的学生的信息

3.运行结果:
在这里插入图片描述
4.源程序:

#include<stdio.h>
#define N 3//设定学生人数
#define K 3//设定学科数目
struct Student//定义结构体类型
{
	int num;//学号
	char name[20];//姓名
	float score[K];//成绩
	float aver;//平均分
};
struct Student stu[N];//定义结构体类型的数组
struct Student *p;//定义结构体类型指针
int main()
{
	void Input();//函数声明
	int Max();
	void Print(int n);
	int n;
	Input();
	n=Max();
	Print(n);
	return 0;
}


/**********输入函数,完成输入与平均值的计算**********/
void Input()
{
	printf("请输入学生信息,学号、姓名、成绩:");
	for(p=stu;p<stu+N;p++)//指针开始指向stu[0],然后是stu[1],……,stu[N]
	{
		scanf("%d%s%f%f%f",&(p->num),p->name,&(p->score[0]),&(p->score[1]),&(p->score[2]));//注意p->name本身就是地址
		p->aver=((p->score[0])+(p->score[1])+(p->score[2]))/3;
	}
}


/**********最大值函数**********/
int Max()
{
	int i;
	float max;
	p=stu;
	max=p->aver;//以stu[0].aver为比较的最初对象
	for(i=0;p<stu+N;p++)
	{
		if((p->aver)>max)
		{
			max=p->aver;
			i++;//计数
		}
	}
	return i;
}


/**********输出函数**********/
void Print(int n)
{
	p=stu+n;//定位最高的平均分
	printf("成绩最高学生的信息为:\n");
	printf("%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",p->num,p->name,p->score[0],p->score[1],p->score[2],p->aver);
}
  • 5
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值