一、本周教学内容&目标
第4章 循环结构 4.1-4.2 熟悉使用while和do-while结构解决问题。
二、本周作业头
这个作业属于那个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | <C语言I作业010> |
我在这个课程的目标是 | <复习所学相关知识,准备期末考试> |
这个作业在那个具体方面帮助我实现目标 | <在PTA中多次使用嵌套循环,熟练运用> |
参考文献 | <<集美大学林丽老师>> C语言程序设计(第三版);百度 |
三、本周作业
1.PTA实验作业
2.代码互评
3.学习总结
四、作业格式
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数据处理
介绍实现本题过程中,你的数据表达、数据处理是怎么做的。注意:请务必按照以下方式书写。
数据表达:定义了整型变量n, i, ,以及字符型变量['A'],n为输入的正整数,I与j用于循环,count用来计数,累加在A上;
数据处理:
表达式:fen55+fen22+fen1==money
结构式:用了for循环语句以及使用嵌套内循环
伪代码:
int main()
{
定义字符型变量['A'];
定义整型变量n。
输入正整数scanf("%d",&n);
进入无线循环
定义整型变量i。
for (i = n; i > 0; i++) 嵌套for循环语句) 循环找出
{
for (j = 0; j < i; j++) 嵌套for循环语句
{
输出空格;
n自减;就是A+1=B了;
换行
}
return 0;
}
1.1.2实验代码截图
贴图展示代码,不要复制。请给出名字标识。
1.1.3 造测试数据
输出你的程序面向各种测试数据结果,除了题目给出的测试数据,可以自己再造其他临界数据,越多越好,并加上必要说明
输入数据 | 输出数据 | 说明 |
---|---|---|
4 | 输出正确 | |
3 | 输出正确 | |
2 | 输出正确 | |
7 | 输出正确 |
1.1.4 PTA提交列表及说明
根据PTA提交列表,简要描述调试程序碰到的问题及解决办法
1.格式错误: if(i!=n)写成了if(i=n)
2.运行超时for(i = 0; i < n; i++){写成了for(i = 0; i < n; i++)}
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 数据处理
介绍实现本题过程中,你的数据表达、数据处理是怎么做的。注意:请务必按照以下方式书写。
数据表达:使用了n,m,i,j,sum,flag=0。m,n表示两个实验数据,i,j用于程序中的两个循环,sum表示因子之和,flag来判断是否有因子
数据处理:
数据类型:for循环和if-else循环以及嵌套的内循环
表达式:if(i==1) continue; //1不是完数
for(j=2;j<i;j++)
流程结构:if-else结构。
伪代码
#include<stdio.h> //头文件
#include<math.h> //该编程中用到了数学
int main() //函数名
{
int b,c=0,d=0,n,i; //定义五个整型变量
scanf("%d",&n);
if(n==1) //没有梅森数
printf("None"); //输出 None
for(b=2;b<=n;b++) //进行循环,找出所有2*n-1的结果
{ c=pow(2,b)-1; //表示素数
for(i=2;i<c;i++) //进行循环,循环找出是素数的数
{
if(c%i==0) //找出2到c之间的所有整数i,如果c不能被这里面的任意一个数整除则这个c为梅森数
{
d=1; //能被整除,不是梅森数
break; //跳出循环
}
}
if(d==0) //如果d=0则i不能被j整除,为梅森数
printf("%d
",c);
d=0;
}
return 0;
}
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
7 | 梅森数,3,7,31 | |
8 | ) | 梅森数为3,7,31,127 |
13 | 梅森数为3,7,31,127,8191 | |
10 | ) | 梅森数为3,7,31,127,8191,131071 |
1.2.4 PTA提交列表及说明
根据PTA提交列表,简要描述调试程序碰到的问题及解决办法
1.编译错误: scanf("%d",&n);写成了scanf("%d",&n;)
2.编译错误: for(b=2;b<=n;b++)写成了 for(b=2;b<=n;i++)
第一张 (7-3 梅森数 )
同学代码截图 |<C语言I作业10 ylimhs阿浩 >|
自己代码截图
答:我和同学的代码有很大的不同
1.我用的代码是利用两个循环语句再用if语句判断。
2.同学代码在后面解决输出NONE的情况, 而我选择在开头就解决这个问题。
第二张 (7-8 输出三角形字符阵列 )
同学代码截图 |<C语言I作业10 karoko >|
自己代码截图
答:第二个同学
1.同学运用的是定义函数再利用两个for循环解决问题,而我则是定义字符数函数再利用while语句
3.学习总结(15分)
$3.1 学习进度条(5分)
|周/日期 |这周所花的时间| |代码行 |学到的知识点简介 |目前比较迷惑的问题|
|-|-|-|-|-|
|第六周| 8小时 |300行 |常用的数学函数,if-else语句,for语句,自定义函数 |不会用自定义函数|
|第七周 |7小时 |400行 |二分支结构和用char输入字符 |对于字符型的代码有点看不懂|
|第八周| 10小时 |420行 |多分支结构,switch语句 |switch语句用得有点混乱|
|第九周 |13小时 |450行 |自定义函数的用法,怎样用一个算法来运算多个式子 |if语句的嵌套不明白是怎样分支的|
|第十周| 18小时 |500行 |多分支结构、字符型数据类型和逻辑运算符 |目前不太熟练并且字符型还没熟悉|
|第十一周|12小时|600行|熟悉多分支结构switch语句的使用|switch后的表达式是否有要求|
|第十二周|8小时 |620 |do-while语句和while,for语句的区别 |continue不知道怎么去用|
|第十三周|10小时|650|break、continue的用法以及它们之间的关系|为什么在for循环前都要m=1;|
|第十四周|10|600|学习了穷举算法(在一定限定范围内可以先运算所有的可能)|对于穷举算法的源程序2还是不太懂|
|第十五周|16|650|怎样判断素数,熟悉循环的嵌套|对于嵌套循环的运用还是不太熟练|
3.2 累积代码行和博客字数(5分)
时间 | 博客字数 | 代码行数 |
---|---|---|
第4周 | 585 | 300 |
第6周 | 1366 | 400 |
第7周 | 2209 | 420 |
第8周 | 4100 | 400 |
第9周 | 6212 | 500 |
第10周 | 8133 | 550 |
第11周 | 10510 | 600 |
第12周 | 13031 | 620 |
第13周 | 15899 | 630 |
第14周 | 17000 | 600 |
第15周 | 19571 | 650 |
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习体会
请回顾自己的本周的学习过程,描述学习感受,也可以提出你不理解的地方、对教师教学建议等。如果你有新的想法或者新的方法,请及时记录下来。
1.这周的pta作业难题就是在了第一题,看似简单的问题却要用及其细心的态度,导致我第一题错的太多,并且错的次数太多,有点打击到自己,跳过之后隔了一天在写思路清晰多了。
2.pta上的练习大部分其实就是一些数学题,自己可以用数学思维解决他们,却老是一下子不知道怎么用代码的形式表示他们。
4.百度是个好东西,尤其是对于初学者来说!
5.希望自己多学一点,走在老师前面