麻烦老师帮忙看看代码中, 一些用法是否都合理, 知识点混合用,感觉有点乱...
#include <stdio.h>
#include <string.h>
#define STNUM 3 // 定义添加的学生个数
// 声明学生结构体类型
typedef struct student{
char name[20];
int id;
int score;
}st;
// 添加学生信息
void input_student(st *pstu, const int stnum)
{
for(int i=0; i<stnum; i++)
{
printf("请输入第%d个学生信息[id, name, score]: ", i+1);
scanf("%d %s %d",&(pstu[i].id), pstu[i].name, &(pstu[i].score));
if(pstu[i].score<0 || pstu[i].score>100)
{
pstu[i].score = 0;
}
}
}
// 输出学生信息
void output_student(st *pstu, const int stnum)
{
printf("ID\tNAME\tSCORE\n");
for(int i=0; i<stnum; i++)
{
printf("%d\t%s\t%d\n", pstu[i].id, pstu[i].name, pstu[i].score);
}
}
// 操作学生
void interface_stu (st *pstu, const int stnum, void (*pfunc)(st *, const int))
{
pfunc(pstu, stnum);
}
void maxscore_student(st *pstu, const int stnum, st *pmax)
{
pmax->score = pstu[0].score;
for(int i=0; i<stnum; i++)
{
if(pstu[i].score>pmax->score)
{
pmax->id=pstu[i].id;
strcpy(pmax->name, pstu[i].name);
pmax->score = pstu[i].score;
}
}
return;
}
int main(int argc, const char *argv[])
{
st s[STNUM]; // 定义学生结构体类型数组
st pmaxscore; //最高分的学生
// input_student(s, STNUM);
// output_student(s, STNUM);
#if 1
interface_stu(s, STNUM, input_student);
interface_stu(s, STNUM, output_student);
printf("====================================\n");
maxscore_student(s, STNUM, &pmaxscore);
printf("最高分的学生: \n");
printf("ID\tNAME\tSCORE\n");
#endif
printf("%d\t%s\t%d\n", pmaxscore.id, pmaxscore.name, pmaxscore.score);
return 0;
正在回答 回答被采纳积分+1
相似问题
登录后可查看更多问答,登录/注册
- 参与学习 394 人
- 提交作业 22954 份
- 解答问题 1163 个
行业热门,政策风口,人才缺口极大,现在入场时机正好! 上千人检验,数轮迭代的硬核知识体系,软硬件通吃 保姆式教学+简历指导+1V1模拟面试+3次内推,助力轻松就业!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星