博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2019春季学期第九周作业
阅读量:5320 次
发布时间:2019-06-14

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

一、作业头内容

这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里
我在这个课程的目标是 程序结构
这个作业在那个具体方面帮助我实现目标 习题难度上的挑战
参考文献 C primer plus

二、基础作业

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

本题要求实现一个根据学生成绩设置其等级,并统计不及格人数的简单函数。

函数接口定义:
c int set_grade( struct student *p, int n );
其中p是指向学生信息的结构体数组的指针,该结构体的定义为:

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

n是数组元素个数。学号num、姓名name和成绩score均是已经存储好的。set_grade函数需要根据学生的成绩score设置其等级grade。等级设置:85-100为A,70-84为B,60-69为C,0-59为D。同时,set_grade还需要返回不及格的人数。

裁判测试程序样例:

#include 
#define MAXN 10struct student{ int num; char name[20]; int score; char grade;};int set_grade( struct student *p, int n );int main(){ struct student stu[MAXN], *ptr; int n, i, count; ptr = stu; scanf("%d\n", &n); for(i = 0; i < n; i++){ scanf("%d%s%d", &stu[i].num, stu[i].name, &stu[i].score); } count = set_grade(ptr, n); printf("The count for failed (<60): %d\n", count); printf("The grades:\n"); for(i = 0; i < n; i++) printf("%d %s %c\n", stu[i].num, stu[i].name, stu[i].grade); return 0;}/* 你的代码将被嵌在这里 */

输入样例:

1031001 annie 8531002 bonny 7531003 carol 7031004 dan 8431005 susan 9031006 paul 6931007 pam 6031008 apple 5031009 nancy 10031010 bob 78

输出样例:

The count for failed (<60): 1The grades: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,count=0;    for(i=0;i
=85&&p[i].score<=100) { p[i].grade='A'; } if(p[i].score>=70&&p[i].score<=84) { p[i].grade='B'; } if(p[i].score>=60&&p[i].score<=69) { p[i].grade='C'; } if(p[i].score<60) { p[i].grade='D'; count++; } } return count;}

设计思路:

1581295-20190426193016816-1236054907.png

本题调试过程碰到问题及解决办法:

1581295-20190426181945014-114381403.png

最后一个if语句的条件是p[i].score<60,而不是0<=p[i].score<60)

运行结果截图:

1581295-20190426152009438-1956876896.png

7-1 一帮一

“一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。本题就请你编写程序帮助老师自动完成这个分配工作,即在得到全班学生的排名后,在当前尚未分组的学生中,将名次最靠前的学生与名次最靠后的异性学生分为一组。

输入格式:
输入第一行给出正偶数N(≤50),即全班学生的人数。此后N行,按照名次从高到低的顺序给出每个学生的性别(0代表女生,1代表男生)和姓名(不超过8个英文字母的非空字符串),其间以1个空格分隔。这里保证本班男女比例是1:1,并且没有并列名次。
输出格式:
每行输出一组两个学生的姓名,其间以1个空格分隔。名次高的学生在前,名次低的学生在后。小组的输出顺序按照前面学生的名次从高到低排列。
输入样例:

80 Amy1 Tom1 Bill0 Cindy0 Maya1 John1 Jack0 Linda

输出样例:

Amy JackTom LindaBill MayaCindy John

实验代码:

#include 
struct student{ int gender; char name[9]; int flag;}; struct student str[51]; int main() { int n; scanf("%d\n",&n); for(int i=0;i

设计思路:

1581295-20190426193027491-483073591.png

本题调试过程碰到问题及解决办法:

1581295-20190426182056010-525176523.png

if语句没有break结束

运行结果截图:

1581295-20190426182121805-2025694232.png

7-2 考试座位号

每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。

输入格式:
输入第一行给出一个正整数 N(≤1000),随后 N 行,每行给出一个考生的信息:准考证号 试机座位号 考试座位号。其中准考证号由 16 位数字组成,座位从 1 到 N 编号。输入保证每个人的准考证号都不同,并且任何时候都不会把两个人分配到同一个座位上。
考生信息之后,给出一个正整数 M(≤N),随后一行中给出 M 个待查询的试机座位号码,以空格分隔。
输出格式:
对应每个需要查询的试机座位号码,在一行中输出对应考生的准考证号和考试座位号码,中间用 1 个空格分隔。
输入样例:

43310120150912233 2 43310120150912119 4 13310120150912126 1 33310120150912002 3 223 4

输出样例:

3310120150912002 23310120150912119 1

实验代码:

#include 
struct student{char number1[1000];int number2;int number3; }; int main() { struct student sl[1000]; int i,j,n,m,number[1000];scanf("%d",&n);for(i=0;i

设计思路:

1581295-20190426193039685-1863976250.png

本题调试过程碰到问题及解决办法:

1581295-20190426182305194-1176198242.png

输出格式中忘记打空格了,呜呜呜,找出来可累死我了...

运行结果截图:

1581295-20190426182151352-1408887354.png

三、预习作业

什么是递归函数,它的优点和缺点有哪些,如何归纳出递归式?

答:

1、递归函数即自调用函数,在函数体内部直接或间接地自己调用自己,即函数的嵌套调用是函数本身。执行递归函数将反复调用其自身,每调用一次就进入新的一层。递归函数必须有结束条件。

2、优点:代码简洁、清晰,易懂。缺点:我看不懂。
3、

引用:利用递归树方法求算法复杂度,其实是提供了一个好的猜测,简单而直观。在递归树中,每一个结点表示一个单一问题的代价,子问题对应某次递归函数调用。我们将树中每层中的代价求和,得到每层代价,然后将所有层的代价求和,得到所有层次的递归调用总代价。

1581295-20190426162655434-976692886.png

四、学习进度统计

学习进度条

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
3/1-3/8 46h 78 定义文件,以及文件的导入导出和读写 数组的运算,输出
3/9-3/15 12h 42 ....未上课 对文件中数据的提取运用,以及一些嵌套语句的实际用法
3/16-3/22 32h 67 二维数组数据的处理和输出 对一些复杂的循环还有些看不懂
3/23-3/29 30h 46 strlen函数,头文件string.h等的用法 新头文件的使用方法
3/30-4/6 25h 102 自定义函数  还是一些比较复杂的循环
4/7-4/19 22h 48 使用指针操作字符串 动态内存分配
4/20-4/26 34h 56 使用结构变量与结构数组进行编程 结构指针

折线图

1581295-20190426200411742-1014668683.png

五、学习感悟

学到了结构变量、结构数组、结构指针等,但是我感觉我只是都学了,却都不是很懂,没有做到学得精的地步。而且''根据实际情况合理定义结构''我好像有点做不到,没有那种对比性的思维。递归函数倒是觉得,能用for解决的,不会用到递归函数。

六、关于结对编程

1581295-20190426153313430-1876980228.png

结对编程让我拥有了队友,仿佛拥有了翅膀,能相对轻松的学习编程了,不会那么无助了。安安还是很棒哒~~
优缺点嘛,菜是原罪!
1581295-20190426195718349-1000445623.png

转载于:https://www.cnblogs.com/zsbhs/p/10775004.html

你可能感兴趣的文章
在AD的环境下,更改计算机名导致TFS,无法连接解决办法
查看>>
Jenkins执行批处理文件失败
查看>>
JAVA 基础坑
查看>>
深入理解jQuery框架-框架结构
查看>>
[7.14NOIP模拟4]通讯 题解 (Tarjan缩点+贪心)
查看>>
刷水记录
查看>>
疫情控制
查看>>
YUI3自动加载树实现
查看>>
String类中的toUpperCase()和toLowerCase()方法
查看>>
python知识思维导图
查看>>
IIS建网站以及建FTP
查看>>
当心JavaScript奇葩的逗号表达式
查看>>
@修饰符--python中的装饰器
查看>>
新工具
查看>>
如何学习-维果茨基
查看>>
App Store最新审核指南(2015年3月更新版)
查看>>
织梦MIP文章内容页图片适配百度MIP规范
查看>>
学习AS3菜鸟起飞吧之—函数(二):函数之返回语句
查看>>
sap basis 常用事务码 --转
查看>>
迭代器
查看>>