Contest1888 - 2025-2026-1学期《C语言程序设计》:结构体【25计算机】(15-16周)

结构体单元作业(作业1888)上机在线编程实验要求

实验目的

  1. 巩固结构体(struct)的定义、初始化及成员访问方法;
  2. 掌握结构体作为函数参数的传递方式(值传递/引用传递);
  3. 学会使用结构体解决实际问题(如数据封装、复杂对象表示、排序等);
  4. 提高在线编程平台的使用能力及代码调试技巧;
  5. 熟练运用结构体处理不同类型的数据集合(如学生信息、复数、分数等)。

实验环境

实验内容

本次作业包含13道结构体相关编程题,需登录WebTuring平台完成。题目涵盖结构体的基本使用、函数传递、排序、复数运算、分数运算等多个知识点:

第一类:基础数据统计与排序(题目A-H)

Problem A: C语言11.1-候选人得票

  • 定义候选人结构体,统计并输出各候选人得票数。

Problem B: C语言11.2

  • 结构体基本操作练习(具体内容以平台题目描述为准)。

Problem C: C语言11.6

  • 结构体数组操作及数据处理(具体内容以平台题目描述为准)。

Problem D: C语言11.8

  • 复杂结构体应用及数据筛选(具体内容以平台题目描述为准)。

Problem E: 复数加法

  • 定义复数结构体(实部、虚部),实现两个复数的加法运算。

Problem F: 复数乘积

  • 基于复数结构体,实现两个复数的乘法运算。

Problem G: 复数求和

  • 计算多个复数的累加和。

Problem H: 谁拿了最多奖学金?

  • 定义学生结构体,包含姓名、学号、成绩、获奖情况等,计算并找出获得奖学金最多的学生。

第二类:排序与特殊运算(题目I-M)

Problem I: 一种排序

  • 使用结构体存储待排序数据及其原始位置,按照特定规则排序并输出。

Problem J: 结义兄弟

  • 结构体的高级应用,处理复杂的关系数据(具体内容以平台题目描述为准)。

Problem K: 电子表A+B

  • 使用结构体表示时间(时、分、秒),实现时间的加法运算。

Problem L: a/b + c/d

  • 定义分数结构体,实现两个分数的加法运算并化简结果。

Problem M: 精挑细选

  • 结构体数组的筛选与组合问题(具体内容以平台题目描述为准)。

实验要求

  1. 结构体使用规范:所有题目必须使用结构体实现数据封装,根据题目需求合理设计结构体成员;
  2. 函数传递方式:结构体作为函数参数时,优先使用引用传递(如const Complex&)以提高效率;
  3. 代码风格
    • 变量名、函数名命名规范,见名知意;
    • 添加必要注释,解释关键逻辑;
    • 代码缩进一致,结构清晰;
  4. 输入输出格式:严格按照平台题目要求的格式进行输入输出,避免多余空格或换行;
  5. 边界情况处理
    • 分数运算中注意分母为0的情况;
    • 复数运算中注意虚部符号的处理;
    • 排序问题中注意相等元素的处理;
  6. 算法效率:对于大规模数据(如n>1000),需考虑算法的时间复杂度。

提交方式

  1. 登录WebTuring平台,进入“作业1888”竞赛页面;
  2. 选择对应题目,在代码编辑器中编写并提交;
  3. 平台自动评测代码,显示“Accepted”(通过)或错误信息(需调试修改);
  4. 完成所有题目并通过评测后,实验结束。

注意事项

  1. 时间限制:自发布起至截止日期前完成提交;
  2. 独立完成:禁止抄袭他人代码,平台会进行相似度检测;
  3. 调试技巧
    • 本地编写代码并测试后再提交;
    • 利用平台的测试用例提示进行调试;
    • 注意数据类型溢出问题(如使用long long处理大数值);
  4. 技术支持:如遇平台技术问题,及时联系课程助教。

知识点回顾

在完成作业前,建议回顾以下结构体相关知识点:

  • 结构体的定义与初始化
  • 结构体成员的访问与修改
  • 结构体数组的定义与使用
  • 结构体作为函数参数(值传递 vs 引用传递)
  • 结构体排序(自定义比较函数)
  • 嵌套结构体的使用


Start Time: 2025-12-04 08:00:00 End Time: 2025-12-23 00:00:00
Current Time: 2025-12-08 02:40:43 Status:Running   Public
[Status] [Standing] [Statistics]
Problem ID Title 分类 AC Submit 正确率
Problem  A C语言11.1-候选人得票 结构体 2 2
100%
Problem  B C语言11.2 结构体 1 1
100%
Problem  C C语言11.6 模拟结构体 1 1
100%
Problem  D C语言11.8 1 1
100%
Problem  E 复数加法 数据结构结构体循环 1 1
100%
Problem  F 复数乘积 数据结构结构体 1 1
100%
Problem  G 复数求和 结构体 1 1
100%
Problem  H 谁拿了最多奖学金? 排序结构体 1 1
100%
Problem  I 一种排序 排序结构体去重排序 1 1
100%
Problem  J 结义兄弟 排序结构体 1 1
100%
Problem  K 电子表A+B 结构体构造结构体数据结构精细 1 1
100%
Problem  L a/b + c/d 模拟数论 1 1
100%
Problem  M 精挑细选 排序结构体 1 1
100%