麻烦老师帮忙看看代码中, 一些用法是否都合理, 知识点混合用,感觉有点乱...

麻烦老师帮忙看看代码中, 一些用法是否都合理, 知识点混合用,感觉有点乱...

#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

登陆购买课程后可参与讨论,去登陆

1回答
山行老师 2022-11-17 17:39:42
代码没有问题,具体是哪一行看不懂呢?
  • 提问者 守望灯塔 #1

    也不是指那一行看不懂,就是代码多了看着很乱,整体思路不清晰

    2022-11-17 18:36:15
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师