学生系统LOW版

#include <stdio.h>
#include <stdlib.h>
#define num 30
#define NO 12
#define NAMELEN 30
struct student
{
	char no[NO + 1];
	char namelen[NAMELEN + 1];
	int age;
	float score;
};
struct student createdata();
struct student findmaxscore(struct student*);
int main()
{
	struct student stu[num], stumax;
	for (int i = 0; i < num; ++i)
		stu[i] = createdata();
		stumax = findmaxscore(stu);
		printf("成绩最高的学生的信息为\n");
		printf("%s%s%d%4.2f", stumax.no, stumax.namelen, stumax.age, stumax.score);
		fflush(stdin);//晓不得这个是搞啥子的
		return 0;
}
struct student createdata()
{
	struct student stu;//对于每次进行调用的时候,这个结构体都是新的,在取地址符号以及,在结构体的详述中体现的尤为突出
	printf("请输入学号\n");
	scanf_s("\n%s", stu.no);
	printf("请输入姓名\n");
	scanf_s("\n%s", stu.namelen);
	printf("请输入年龄\n");
	scanf_s("\n%d", &stu.age);
	printf("请输入分数\n");
	scanf_s("%f", &stu.score);
	return stu;//返回值是一个结构体变量,用它来为main函数中的结构体数组进行赋值
}//实现对每一个结构体进行遍历,在for循环里面就能实现
struct student findmaxscore(struct student*s)
{
	int i, j;
	struct student stu;//装最高分的数组
	struct student* p;//作为一个结构体指针,计算偏移量的
	p = s;//初始值为零
	float k=0;
	k = p->score;
	j = 0;
	for (int i = 0; i < num; ++i, ++p) {
		if (p->score > k)
		{
			k = p->score;
			j = i;
		}
	}
		stu = *(s + j);//偏移量
		return stu;//返回值也是一个 结构体变量
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值