设有一组学生的成绩数据已经放在结构体数组stu中
struct student
{ int num;
char name[20];
char sex;
float score;
}stu[5]={{101,"li ping",'m',45},
{102 ,"zhang ping",'m',62.5},
{103 ,"he fang",'m',92.5},
{104 ,"cheng ling",'f',87},
{105 ,"wang ming",'m',58}};
1)子函数实现 :不及格人数统计。要求:使用结构体指针变量作为函数参数编程,主函数中输出结果。
2)子函数实现: 根据学号在结构体数组中查找学生信息,返回该学生所在的数组下标,若没找到则返回-1。主函数中输出该学生信息。要求:使用学号、结构体指针变量作为函数参数编程。
3)子函数实现:根据姓名在结构体数组中查找学生信息,返回该学生所在的数组下标,若没找到则返回-1。主函数中输出该学生信息。要求:使用字符数组或字符指针变量(为了传递姓名)、结构体指针变量作为函数参数编程。
学生成绩管理,不及格统计,信息查找
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 南七灵 2021-12-25 15:24关注
#include <stdio.h> #include <string.h> struct student { int num; char name[20]; char sex; float score; }stu[5]={{101,"li ping",'m',45}, {102 ,"zhang ping",'m',62.5}, {103 ,"he fang",'m',92.5}, {104 ,"cheng ling",'f',87}, {105 ,"wang ming",'m',58}}; int failed(struct student *s); int search1(int num, struct student *s); int search2(char *name, struct student *s); int main() { printf("不及格人数共有%d个\n",failed(stu)); int num; printf("请输入一个学号:"); scanf("%d",&num); int a = search1(num,stu); if(a != -1){ printf("%d,%s,%c,%.2f\n",stu[a].num,stu[a].name,stu[a].sex,stu[a].score); }else{ printf("没有找到!\n"); } char name[20]; printf("请输入一个姓名:"); getchar(); gets(name); int b = search2(name,stu); if(b != -1){ printf("%d,%s,%c,%.2f\n",stu[b].num,stu[b].name,stu[b].sex,stu[b].score); }else{ printf("没有找到!"); } return 0; } int failed(struct student *s){ int cnt = 0; for(int i = 0;i < 5;i++){ if(s[i].score < 60){ cnt ++; } } return cnt; } int search1(int num, struct student *s){ for(int i = 0;i < 5;i++){ if(s[i].num == num){ return i; } } return -1; } int search2(char *name, struct student *s){ for(int i = 0;i < 5;i++){ if(!strcmp(s[i].name,name)){ return i; } } return -1; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥100 任意维数的K均值聚类
- ¥15 stamps做sbas-insar,时序沉降图怎么画
- ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
- ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
- ¥15 关于#Java#的问题,如何解决?
- ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
- ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
- ¥15 cmd cl 0x000007b
- ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
- ¥500 火焰左右视图、视差(基于双目相机)