本文共 3228 字,大约阅读时间需要 10 分钟。
问题描述:实现一个根据学生成绩设置等级并统计不及格人数的简单函数。
函数接口定义:int set_grade(struct student *p, int n);
其中,struct student的定义为:
struct student { int num; char name[20]; int score; char grade; }; 输入样例:
学生信息:31001 annie 85331002 bonny 75331003 carol 70331004 dan 84331005 susan 90331006 paul 69331007 pam 60331008 apple 50331009 nancy 10031010 bob 78输出样例:
不及格人数:1学生成绩及等级:31001 annie A31002 bonny B31003 carol B31004 dan B31005 susan A31006 paul C31007 pam C31008 apple D31009 nancy A31010 bob B实验代码:
int set_grade(struct student *p, int n) { int i, sum = 0; for (i = 0; i < n; i++) { if ((*p).score > 85 && (*p).score <= 100) { (*p).grade = 'A'; } else if ((*p).score >= 70 && (*p).score <= 84) { (*p).grade = 'B'; } else if ((*p).score >= 60 && (*p).score <= 69) { (*p).grade = 'C'; } else { (*p).grade = 'D'; sum++; } p++; } return sum; } 设计思路:
遇到的问题及解决:
问题描述:根据学生成绩排名,将名次最高的异性学生分为一组。
输入格式:输出格式:
按名次从高到低的顺序输出每组的两个学生姓名。输入样例:
80 Amy1 Tom1 Bill0 Cindy0 Maya1 John1 Jack0 Linda输出样例:
Amy JackTom LindaBill MayaCindy John实验代码:
#includestruct student { int sex; char name[10]; int flag; }; int main() { int n; scanf("%d", &n); struct student students[n]; for (int i = 0; i < n; i++) { scanf("%d %s", &students[i].sex, students[i].name); students[i].flag = 0; } for (int i = 0; i <= n/2; i++) { int j = n - 1 - i; if (students[i].sex != students[j].sex && students[i].flag == 0 && students[j].flag == 0) { printf("%s %s\n", students[i].name, students[j].name); students[i].flag = 1; students[j].flag = 1; } } return 0; }
设计思路:
遇到的问题及解决:
for 语句的条件书写错误。问题描述:根据试机座位号查询考生的考试座位号。
输入格式:输入样例:
1043310120150912233 2 433101201509121194 13310120150912126 1 33310120150912002 3 223 4输出样例:
3310120150912002 23310120150912119 1实验代码:
#includestruct a { char num1[100]; int num2; int num3; }; int main() { int N; scanf("%d", &N); struct a s[N]; for (int i = 0; i < N; i++) { scanf("%s %d %d", s[i].num1, &s[i].num2, &s[i].num3); } int M; scanf("%d", &M); int query[M]; for (int i = 0; i < M; i++) { scanf("%d", &query[i]); } for (int i = 0; i < M; i++) { for (int j = 0; j < N; j++) { if (s[j].num2 == query[i]) { printf("%s %d\n", s[j].num1, s[j].num3); break; } } } return 0; }
设计思路:
遇到的问题及解决:
scanf 格式,确保准考证号、试机座位号和考试座位号正确读取和存储。转载地址:http://mjgfk.baihongyu.com/