1.本章学习总结

1.1思维导图

1.2本章学习体会及代码量学习体会

1.2.1学习体会

  • 初识数组:这几周第一次接触数组,感觉有点懵,是一个很陌生的知识点,但是运用范围及其广泛,大大简化了程序,增大了代码的可读性,于此同时,内容也极其丰富,包括一维数组、二维数组和字符数组,真是让人头大啊
  • 遇到的问题:1.老师上课比较快a,基本上一节课一种数组,对于二维数组和字符数组的掌握真的很不牢固,缺少课后巩固和复习的时间;

    2.对于数组元素交换位置不知道怎么处理,对于冒泡、选择、重构数组,哈希查找等使用方法了解,但是缺少实际运用的能力;

    3.数组的题目可谓是又多又难,可能因为对于代码的算法还是不熟悉不习惯,很容易对着题目毫无思路,二维数组的for循环或是if, while等语句的使用太多,很容易搞乱嵌套。
  • 之后的学习:1.由于数组的内容掌握真的很烂,上次上机考试脑子一团乱麻,很多小板块不明白,直接放弃了考试,这种心态真的要改,最近又 碰上线代考试,pta最近也有些荒废,现在在学习指针的同时,也要重新理一下数组的思路,在题目之中体会各种方法的使用方法,代码能力较弱应 该多加练习,课前预习,课上好好听老师的拓展,课后认真复习总结, 对于课堂派上的代码也要认真分析,希望这样糟糕的状态不会再出现!

    2.数组真的很重要,要学会跟之前的函数连接起来,跟后面的指针也是息息相关的

1.2.2代码累计

2.PTA总分

2.1





2.2我的总分

一维数组:200分;

二维数组:105分;

字符数组:150分;

总分:455分

3.PTA实验作业

3.1PTA题目1

给定两个整型数组,要求找出不是两者共有的元素

3.1.1算法分析

1. 分别输入两个数组a[num1],b[num2]
int c[num3];num3=0;// 存放非共有元素
2.查找a数组中独有元素存入c中 a[num1],b[num2];
for i=0 to num1
for j=0 to num2
if(a[i]==b[j])then //是重复元素
flag=1;
end if
if (flag==0) then //不是两者共有元素
for k=0 to num3
if(c[k]==a[i]) then //检查c中有无重复
temp=1;
end if
if(temp==0) then
c[num3]==a[i]; //非重复元素存入c中
num3++;
end if
end for
end for
end for
3. 查找b数组独有元素存入c中,步骤同2

​ 4. 输出c数组

for i=0 to num3

printf("%d",c[i]);

end for

3.1.2代码截图



3.1.3 PTA提交列表及说明

Q:只是把a、b中独有的元素存入c中,忽略a、b中存在重复元素

A: 再设计一个循环,比较a,c数组和b,c数组,将不相同的元素存入c中;

Q:for循环太多,嵌套出现错误

A:在草稿纸上将思路又理了一遍,先写外循环,再写内循环,进行拼接。

PS:老师的方法,先分别检查a,b数组中是否有重复元素并删去,将a,b数组合并,查找重复元素删去,再输出。

3.2题目二

图书借阅系统

  • 当读者借书时,管理员输入书号并按下S键,程序开始计时;当读者还书时,管理员输入书号并按下E键,程序结束计时;
  • 0作为书号输入时,表示一天工作结束;
  • 输出当天的读者借书次数和平均阅读时间
  • 只有S没有E,或者只有E没有S的纪录,系统应能自动忽略这种无效纪录。另外,题目保证书号是书的唯一标识,同一本书在任何时间区间内只可 能被一位读者借阅。

3.2.1算法分析

1.定义一个二维数组存放数据,输入天数days,时分分开;
int a[1001][3];
static flag[1001];//存放结果
2.计算合格数据的时间
for i=0 to days
输入书号、借书or还书、时间
while(书号不为0)
if 借书
flag[book]=1;
a[book][1]=60*hour+minute;
end if
if 还书
if flag[book]=1
a[book][2]=60*hour+minute;
sendtime+=a[book][2]-a[book][1];
count++;//累计借书量
flag[book]=0;//初始化
end if
end if
输入书号、借书or还书、时间
end while
if (count==0) 直接输出0 0;
else 输出结果 初始化a数组和flag数组,便于下一次存放数据
end for

3.2.2代码截图



3.2.3 PTA提交列表及说明

3.3题目三

  • 将运算数、运算符和括号等toker分开并输出

3.3.1算法分析

1.定义字符数组存放表达式
char str [41];
for i=0 to str[i]
if str[i+1] 为数字或是小数点
输出 str[i]
else
输出 str[i] 和一个换行符
else if str[i]为运算符
if str[i-1]是数字或是括号
输出 str[i] 和一个换行符
else 输出输出 str[i]
end if
end if
else
输出str[i];
end for

3.3.2代码截图

3.3.3PTA提交列表及说明

ps: 这道题问题不大,还是比较简单,但是有些麻烦,需要分很多情况考虑,有点昏了,要么就是考虑的重复了,要么就是考虑的不够充分,反反复复的之后我就请教了一下同学的代码,这样比较简洁,可读性较大

4.代码互评

4.1代码截图

范华同学的代码



我的代码

4.2二者的不同

范华同学采用的方法比较新颖,而我的比较常规,根据代码的规律采用for循环控制数据,而范华同学的算法很简洁,采用数组清零,学习能力比较强,对于算法的积累较多,值得学习。

这道题我不怎么会,我的写法也是同学教的,这种规律题一直都是我比较不擅长的,每次碰到都会没有思路,这次相当于总结了两位同学的代码,通过找异同点,可以使我慢慢熟悉这种题的道路。

加油鸭!

C语言--第4次作业的更多相关文章

  1. 关于C语言的问卷调查(作业三)

    1.你对自己的未来有什么规划?做了哪些准备? 答:我对我未来的规划就是希望能够学有所用,将来可以从事有关IT方面的,跟自己的专业对口.为此现在我需要多看一些和这个专业有关的书籍,自学一些知识,多些一些 ...

  2. 网络1711班 C语言第四次作业批改总结

    网络1711班 C语言第四次作业批改总结 助教有话说(写在前面) 近来,有同学跟老师和助教们反映:博客作业太多太麻烦,而且对编程能力提高似乎没什么帮助?在这里我要谈一谈我的感想. 博客作业的意义? 首 ...

  3. 网络1711班 C语言第七次作业批改总结

    网络1711班 C语言第七次作业批改总结 1.本次作业评分细则 1.1 基本要求(1分) 按时交 - 有分 未交 - 0分 迟交一周以上 - 倒扣本次作业分数 抄袭 - 0分 泛泛而谈(最多七分) 1 ...

  4. 网络1711班 C语言第八次作业批改总结

    网络1711班 C语言第七次作业批改总结 最近在忙一些琐事,没能及时批改大家的作业,连续两次作业总结也没有很用心写,在这要给大家say sorry. 1.本次作业评分细则 1.1 基本要求(1分) 按 ...

  5. C语言程序设计第二次作业--顺序结构

    C语言程序设计第二次作业--顺序结构 1.输出带框文字:在屏幕上输出以下3行信息. ************* Welcome ************* 源程序 #include <stido ...

  6. 跨语言调用Hangfire定时作业服务

    跨语言调用Hangfire定时作业服务 背景 Hangfire允许您以非常简单但可靠的方式执行后台定时任务的工作.内置对任务的可视化操作.非常方便. 但令人遗憾的是普遍都是业务代码和hagnfire服 ...

  7. C语言的第零次作业

    C语言--第0次作业 Q1:对于网络专业的了解 一开始我对网络工程这个专业并不是很了解,在报志愿之前,我完全没想过自己会进这个专业,但是经过了一个暑假的时间,我慢慢地开始了解这个学科,并开始对这个专业 ...

  8. C语言I博客作业02

    这个作业属于那个课程  C语言程序设计I 这个作业要求在哪 https://edu.cnblogs.com/campus/zswxy/CST2019-3/homework/8656 我在这个课程的目标 ...

  9. C语言I—2019秋作业02

    1.[新增内容] 这个作业属于那个课程 C语言程序设计 这个作业要求在哪里 <C语言I-2019秋作业02> 我在这个课程的目标是 这个作业在那个具体方面帮助我实现目标 <实现一些基 ...

  10. C语言I博客作业03

    这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/8717 我在这个课程的目 ...

随机推荐

  1. 浅析MySQL InnoDB的隔离级别

    MySQL InnoDB存储引擎中事务的隔离级别有哪些?对应隔离级别的实现机制是什么? 本文就将对上面这两个问题进行解答,分析事务的隔离级别以及相关锁机制. 隔离性简介 隔离性主要是指数据库系统提供一 ...

  2. mysql----------原生的sql里面如何根据case then排序

    1.按照三个字段都符合条件来排序 ORDER BY (    CASE    WHEN is_top = 1    AND top_end_time>UNIX_TIMESTAMP()    AN ...

  3. 用requests库和BeautifulSoup4库爬取新闻列表

    import requests from bs4 import BeautifulSoup url='http://news.gzcc.cn/html/xiaoyuanxinwen/' res=req ...

  4. noVNC支持手机自带键盘输入

    代码修改说明 novnc的web链接类似为:http://192.168.1.177:6080/vnc_auto.html?token=105356fa-bbe3-43e4-a0ce-7703dc42 ...

  5. 群晖IP地址更新问题

    系统:黑群晖  DS3615 事件:初始安装后 会自动获取一个IP地址,各项功能正常,由于网络调整,更换了路由,群晖宿主机链接到了二级路由(交换机模式) 问题: 1.使用原始的IP无法访问到群晖服务 ...

  6. Javascript基础语法(三)

    数组 1.什么是数组 有许多变量,它们的名称和数据类型都是一致的. 2. 数组声明 var arr = [元素,元素,元素...]; var arr = new Array(元素,元素,元素...); ...

  7. CCF CSP 201509-1 数列分段

    题目链接:http://118.190.20.162/view.page?gpid=T32 问题描述 试题编号: 201509-1 试题名称: 数列分段 时间限制: 1.0s 内存限制: 256.0M ...

  8. ceph rbd双挂载导致ext4文件系统inode链接数据污染

    转载自:https://my.oschina.net/xueyi28/blog/1596003 ###故障现象 /data/rbd1/dir1/a/file1 /data/rbd1/dir2/a/fi ...

  9. Java集合类学习笔记2

    二,具体的集合 集合类型 描述 ArrayList 一种可以动态增长和缩减的索引序列 LinkedList 一种可以在任何位置进行高效地插入和删除操作的有序序列 ArrayDeque 一种用循环数组实 ...

  10. java线程学习之Sleep方法

    sleep方法是在线程中常用到的一个方法,它是一个静态方法. sleep(long millis)       在指定的毫秒数内让当前正在执行的线程休眠(暂停执行),此操作受到系统计时器和调度程序精度 ...