C语言Ⅰ博客作业08
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/CST2020-4 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-4/homework/11613 |
我在这个课程的目标是 | 学会用嵌套循环解决多种复杂问题 |
学号 | 20209058 |
1.PTA作业
1.1 显示指定范围内的素数
输入整数m,将所有大于1小于整数m的素数存入所指定的数组中(数组最多只存放100个素数,超过则提示“OVERFLOW”),输出各素数——若输入的m≤2,则提示“NO”,程序终止。注:素数(Prime Number),亦称质数,指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。
1.1.1 数据处理
数据表达:将输入的数,素数个数分别定义为整型m,count,另外还设置一个整型变量flag判断素数
数据处理:if (m<=2)printf("NO");
else if(m<=541) 再利用for循环从3到m判断素数并对其个数整除15来解决换行问题
else if(m>542)printf("OVERFLOW")
1.1.2 实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
100 | 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 | 一般情况 |
568 | OVERFLOW | 素数溢出时 |
1 | NO | m<=2时 |
1.1.4 PTA提交列表及说明
1.答案错误:将count>100作为判断输出溢出的条件,当n>541时不但输出了溢出,还将541之前全部的素数都输出来了
2.答案正确:count每次的值都加一,所以无法作为判断条件(应该有但是处理起来较复杂我也没想到),便换了一种最简单粗暴的方式
,直接将m>541当判断条件
1.2 Wifi密码
下面是微博上流传的一张照片:“各位亲爱的同学们,鉴于大家有时需要使用 wifi,又怕耽误亲们的学习,现将 wifi 密码设置为下列数学题答案:A-1;B-2;C-3;D-4;请同学们自己作答,每两日一换。谢谢合作!!~”—— 老师们为了促进学生学习也是拼了…… 本题就要求你写程序把一系列题目的答案按照卷子上给出的对应关系翻译成 wifi 的密码。这里简单假设每道选择题都有 4 个选项,有且只有 1 个正确答案。
1.2.1 数据处理
数据表达:将输入的选项和正误定义为字符型变量,读入的n为整型,输出的密码存放在数组中
数据处理:第一个for循环控制输入数据的行数,第二个for循环遍历每一行的输出判断,最后一个for循环连续输出数组里存放的值
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
2 A-T B-F C-F D-F A-F B-T C-F D-F | 12 | 密码个数为2时的运算 |
6 A-T B-F C-F D-FC-T B-F A-F D-FA-F D-F C-F B-TB-T A-F C-F D-FB-F D-T A-F C-FA-T C-F B-F D-FD-T | 133242 | 密码个数较少时的运算 |
8A-T B-F C-F D-FC-T B-F A-F D-FA-F D-F C-F B-TB-T A-F C-F D-FB-F D-T A-F C-FA-T C-F B-F D-FD-T B-F C-F A-FC-T A-F B-F D-F | 13224143 | 密码个数为8的运算 |
100 | 当n超过极限值 |
1.2.4 PTA提交列表及说明
1.答案错误:第二个循环的循环条件是小于4,想的是一次读入2个字符,读4次恰好是一次8个字符,但输出结果只有一半
2.答案正确:每输入两个字符后就会打个空格,会被放在下一个循环的scanf里,所以需要读取8次
2.代码互评
同学1代码
同学2代码
我的代码
1.第一位同学将六位数的每一位数都通过取余取整的方法得到,再把他们分别放到不同的变量中,对其和进行比较
2.第二位同学把对数字的拆解放到循环里面,循环3次将前后3个数进行取余取整得到
3.我的是直接读取6个数,看起来很简单,但是没有像这两位同学一样体现编程的数学思维
3.学习总结
3.1 学习进度条
周/日期 | 这周所花的时间 | 学到的知识点简介 | 目前比较困惑的问题 |
---|---|---|---|
12/7-12/12 | 8h | for循环的嵌套使用 | 各种循环的条件如何清晰地表达出来 |
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2学习体会
- 有关跳出多重循环的问题有多种解决办法,如使用goto,或者直接修改循环条件,让它不满足最外层的循环条件,还可以在各个循环后面判断标志加入break,直到跳出所以循环,就是太麻烦了
- 现在感觉c语言题目越来越难了,也缺失了很大的信心,很多复杂的题目真的无从下手
- 学的内容和敲得代码还是太少了,虽然以后不太可能靠c吃饭,但其中的编程思维和算法问题在计算机邻域还是值得深究的