#include <stdio.h> //结构体指针作为函数参数 struct Student{ unsigned int no; char name[16]; float score; }; //输入学生信息(参数:数组首地址) void input(struct Student *p); //寻找6个学生中成绩最高的学生(参数:数组首地址) void find_max(struct Student *p); int main() { struct Student stu[6]; input(stu); find_max(stu); return 0; } void input(struct Student *p){ for(int i=0; i<6; i++){ printf("输入第%d个学生的信息【编号 姓名 成绩】:", i+1); scanf("%d %s %f", &p[i].no, p[i].name, &p[i].score); } } void find_max(struct Student *p){ //假设第一个元素的成绩最高 struct Student max = *p; p++; for(int i=0; i<6; i++){ if(p->score > max.score){ max = *p; } p++; } printf("成绩最高的学生信息: "); printf("编号:%d 姓名:%s 成绩:%.2f ", max.no, max.name, max.score); }