C语言I博客作业10
| |
---|:--😐---:
|这个作业属于那个课程| C语言程序设计II
|这个作业要求在哪里| https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/10096
|我在这个课程的目标是| 精通c语言
|这个作业在那个具体方面帮助我实现目标| 学会了循环的嵌套
|参考文献 |c语言程序设计
1.PTA实验作业(20分/题)
从PTA题目集中选出2个你最满意的题目完成以下内容,选择题目难度越大,分值越高,每题20分(每项5分),内容要求如下:
1.1 题目名1
7-8 输出三角形字符阵列 (15 分)
本题要求编写程序,输出n行由大写字母A开始构成的三角形字符阵列。
输入格式:
输入在一行中给出一个正整数n(1≤n<7)。
输出格式:
输出n行由大写字母A开始构成的三角形字符阵列。格式见输出样例,其中每个字母后面都有一个空格。
输入样例:
4
输出样例:
A B C D
E F G
H I
J
1.1.1数据处理
length控制行数和长度 count控制字符的递增
#include<stdio.h>
int main()
{
声明length控制行数和长度 , count控制字符的递增 ;
给length赋值; // <- 4
for (循环length次打印length行)
{
for (循环length递减次,每行打印length递减个字母)
{
printf("%c ", 'A' + count);
count++;
}
换行;
}
return 0;
}
1.1.2实验代码截图
1.1.3 造测试数据
|输入数据 |输出数据 |说明
|:--|:--😐:--😐--:
| 0 | 无 |length=0
| 1 | A |length=1
| 4 | A B C D \n E F G \n H I \n J |题目所给
1.1.4 PTA提交列表及说明
编译错误:因为for循环后加了“;”
解决方法:去掉“;”
1.2 题目2
7-3 梅森数 (20 分)
形如2
n
−1的素数称为梅森数(Mersenne Number)。例如2
2
−1=3、2
3
−1=7都是梅森数。1722年,双目失明的瑞士数学大师欧拉证明了2
31
−1=2147483647是一个素数,堪称当时世界上“已知最大素数”的一个记录。
本题要求编写程序,对任一正整数n(n<20),输出所有不超过2
n
−1的梅森数。
输入格式:
输入在一行中给出正整数n(n<20)。
输出格式:
按从小到大的顺序输出所有不超过2
n
−1的梅森数,每行一个。如果完全没有,则输出“None”。
输入样例:
6
输出样例:
3
7
31
1.2.1 数据处理
length为输入的数 ss(int i)为判断是否为素数的函数 flag是用来判断是否有梅森数 number为等待被判段的数
#include<stdio.h>
#include<math.h>
int ss(int i); // 函数声明
int main()
{
输入数字n;
判断有无梅森数 flag = 0;
for(i=2,从2到n的数都计算一遍)
{
if (ss(i)) // 0 为假, 否则 为真
{
printf("%.0lf\n", pow(2, i) - 1);
flag++;
}
}
if (flag == 0)
无梅森数printf("None");
return 0;
}
ss(int num)判断是否为梅森数
{
待判断的数number = pow(2, num) - 1;
for(判断number是否为素数)
{
if (不是素数)
{
return 0;
}
}
return 1;
}
1.2.2 实验代码截图
1.2.3 造测试数据
|输入数据 |输出数据 |说明
|:--|:--😐:--😐--:
| 0 | None | n=0
| 1 | None | n=1
| 6 | 3 7 31 | 题目所给
1.2.4 PTA提交列表及说明
部分正确:因为没有考虑n=1的情况,所以n=1时没有输出
解决方法:将n=1的情况也考虑进去
2.代码互评(5分)
找2份同学代码,和自己代码比较,建议互评代码尽量找代码风格差异较大。
同学代码截图
同学1
同学2
自己代码截图
同学1:设置了三个出口,将n=1的情况单独的列出来了,是多余的
同学2:是第一的同学的修改版,没有多余的出口
我:运用了函数,使代码看起来更整洁
3.学习总结(15分)
3.1 学习进度条(5分)
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第一周 | 2h | 72 | 输出 | 对于输出的符号还不熟 |
第二周 | 3.5h | 57 | 计算 | 算法陌生 |
第三周 | 3.5h | 81 | 分支结构 | 分支的逻辑理不清 |
第四周 | 1.5h | 180 | for循环,+= | 终止条件理不清 |
第五周 | 2h | 600 | 函数结构 | 对于算法的处理比较迷惑 |
第六周 | 2h | 1000 | 嵌套 | 对于嵌套的结构过多会解读的很吃力 |
第七周 | 2h | 1246 | switch结构 | switch结构里的case最后若是不加break会怎么样 |
第八周 | 3h | 1102 | while结构 | 字符的运用不熟 |
第九周 | 3h | 1002 | 循环嵌套 | 代码思维不够 |
第十周 | 3h | 999 | 无 | 对于嵌套结构运用不熟练 |
3.2 累积代码行和博客字数(5分)
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习体会
经过本周的代码学习,发现自己有了些怠慢,本周没能很好的掌握一些新的知识点,之后的没一周我都要学习一些新的知识点,争取走在大家的前面,
并且通过了本周的pta,我发现自己的解题逻辑不是很清晰,之后逻辑不清晰的题目我一定要写在纸上好好理清楚,希望之后能有更大的进步吧!