[C语言]用结构体把输入的指定分数范围内的学生输出
1、题目
学生的记录由姓名和成绩组成且在主函数中通过结构体数组初始化,无需输入。请编写函数实现把输入的指定分数范围内的学生通过结构体指针保存数据并输出。
要求:
- 使用结构体:
typedef struct Student { char name[20]; int score; }Stu;
- 给定原始12位学生数据:
{"HC105",85},{"HC103",76},{"HC102",69},{"HC104",85}, {"HC101",96},{"HC107",72},{"HC108",64},{"HC106",87}, {"HC115",85},{"HC113",94},{"HC112",64},{"HC114",91}
- 使用子函数:void StructSearch(Stu *a, Stu *b, int low, int high ,int n,int *m)
输入格式: 输入两个分数
输出格式: 把在分数范围的学生信息输出
样例:
输入:75,86
输出:
HC105,85
HC103,76
HC104,85
HC115,85
2、完整代码
#include <stdio.h> #define N 12 typedef struct Student { char name[20]; int score; }Stu; int StructSearch(Stu* a, Stu* b, int low, int high, int n, int* m) { int i, j = 0; for (i = 0; i < n; i++) { if (a[i].score >= low && a[i].score <= high) { b[j++] = a[i]; } } m = j; } int main() { struct Student s[N] = { {"HC105",85},{"HC103",76},{"HC102",69},{"HC104",85}, {"HC101",96},{"HC107",72},{"HC108",64},{"HC106",87}, {"HC115",85},{"HC113",94},{"HC112",64},{"HC114",91} }; struct Student h[N]; int i, j, n, low, high, t; scanf("%d,%d", &low, &high); n = StructSearch(s, h, low, high, 12, &n); for (i = 0; i < n; i++) printf("%s,%d\n", h[i].name, h[i].score); }
3、截图
本文作者:Dancing-Pierre
本文链接:https://www.cnblogs.com/wyc-1009/p/17548020.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步