博客
关于我
2019春第九周编程总结
阅读量:798 次
发布时间:2023-04-16

本文共 3228 字,大约阅读时间需要 10 分钟。

学习总结:C语言程序设计课程作业

6-1 按等级统计学生成绩

问题描述:实现一个根据学生成绩设置等级并统计不及格人数的简单函数。

函数接口定义

int set_grade(struct student *p, int n);

其中,struct student的定义为:

struct student {      int num;      char name[20];      int score;      char grade;  };

输入样例

学生信息:
31001 annie 853
31002 bonny 753
31003 carol 703
31004 dan 843
31005 susan 903
31006 paul 693
31007 pam 603
31008 apple 503
31009 nancy 100
31010 bob 78

输出样例

不及格人数:1
学生成绩及等级:
31001 annie A
31002 bonny B
31003 carol B
31004 dan B
31005 susan A
31006 paul C
31007 pam C
31008 apple D
31009 nancy A
31010 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;  }

设计思路

  • 遍历每个学生记录。
  • 根据成绩范围设定等级。
  • 统计低于60分的学生人数。
  • 遇到的问题及解决

  • 初始代码未正确处理大括号,导致语法错误。
  • 通过检查代码逻辑,确保每个条件判断正确无误。
  • 测试样例输入后,确认函数正确返回不及格人数,并正确设置等级。
  • 7-1 一帮一学习小组分组

    问题描述:根据学生成绩排名,将名次最高的异性学生分为一组。

    输入格式

    • 第一行:正偶数N(≤50)。
    • 后N行:名次从高到低的学生信息,包括性别(0女,1男)和姓名。

    输出格式

    按名次从高到低的顺序输出每组的两个学生姓名。

    输入样例

    8
    0 Amy
    1 Tom
    1 Bill
    0 Cindy
    0 Maya
    1 John
    1 Jack
    0 Linda

    输出样例

    Amy Jack
    Tom Linda
    Bill Maya
    Cindy John

    实验代码

    #include 
    struct 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 语句的条件书写错误。
  • 通过调整循环条件,确保正确遍历学生数组。
  • 最终代码通过测试样例,正确完成分组任务。
  • 7-2 考试座位号查询

    问题描述:根据试机座位号查询考生的考试座位号。

    输入格式

    • 第一行:正整数N(≤1000)。
    • 后N行:每个考生的准考证号、试机座位号、考试座位号。
    • 最后给出M个试机座位号,查询对应的考试座位号。

    输入样例

    10
    43310120150912233 2 43310120150912119
    4 13310120150912126 1 33310120150912002 3 223 4

    输出样例

    3310120150912002 23310120150912119 1

    实验代码

    #include 
    struct 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/

    你可能感兴趣的文章
    Opencv——模块介绍
    查看>>
    OpenCV与AI深度学习 | 2024年AI初学者需要掌握的热门技能有哪些?
    查看>>
    OpenCV与AI深度学习 | OpenCV图像拼接--Stitching detailed使用与参数介绍
    查看>>
    OpenCV与AI深度学习 | OpenCV快速傅里叶变换(FFT)用于图像和视频流的模糊检测(建议收藏!)
    查看>>
    OpenCV与AI深度学习 | SAM2(Segment Anything Model 2)新一代分割一切大模型介绍与使用(步骤 + 代码)
    查看>>
    OpenCV与AI深度学习 | YOLO11介绍及五大任务推理演示(目标检测,图像分割,图像分类,姿态检测,带方向目标检测)
    查看>>
    OpenCV与AI深度学习 | YOLOv11来了:将重新定义AI的可能性
    查看>>
    OpenCV与AI深度学习 | 使用Python和OpenCV实现火焰检测(附源码)
    查看>>
    OpenCV与AI深度学习 | 使用PyTorch进行小样本学习的图像分类
    查看>>
    OpenCV与AI深度学习 | 使用YOLO11实现区域内目标跟踪
    查看>>
    OpenCV与AI深度学习 | 使用YOLOv8做目标检测、实例分割和图像分类(包含实例操作代码)
    查看>>
    OpenCV与AI深度学习 | 使用单相机对已知物体进行3D位置估计
    查看>>
    OpenCV与AI深度学习 | 基于GAN的零缺陷样本产品表面缺陷检测
    查看>>
    OpenCV与AI深度学习 | 基于OpenCV和深度学习预测年龄和性别
    查看>>
    OpenCV与AI深度学习 | 基于Python和OpenCV将图像转为ASCII艺术效果
    查看>>
    OpenCV与AI深度学习 | 基于PyTorch实现Faster RCNN目标检测
    查看>>
    OpenCV与AI深度学习 | 基于PyTorch语义分割实现洪水识别(数据集 + 源码)
    查看>>
    OpenCV与AI深度学习 | 基于YOLO11的车体部件检测与分割
    查看>>
    OpenCV与AI深度学习 | 基于YOLOv8的停车对齐检测
    查看>>
    OpenCV与AI深度学习 | 基于机器视觉的磁瓦表面缺陷检测方案
    查看>>