问题 | 回答 |
---|---|
这个作业属于那个课程 | C语言程序设计II |
这个作业要求在哪里 | 作业要求 |
我在这个课程的目标是 | 自己设计一个小游戏 |
这个作业在那个具体方面帮助我实现目标 | 选择合适的算法、合理的循环结构,熟练的编写程序 |
参考文献 | 百度百科 |
1.PTA实验作业(20分/题)
1.1梅森数
1.1.1数据处理
数据表达:定义了整型函数i循环次数,n代表2的幂数,a2的b次方,b做幂数递增,c是计数器。
数据处理:
定义了整型函数i循环次数,n代表2的幂数
定义a是2的b次方,b做幂数递增,c是计数器
输入2的幂数
while(b<n)
b++ /*作为2的幂从1开始循环一次加1*/
a=pow(2,b) /*将数化成2的次方形式,减少循环次数*/
for(i=2;i<=(a-1)/2;i++)
if((a-1)%i==0) /*如果不是素数*/
跳出当前循环
end if
end for
if(i>(a-1)/2) /*如果是梅森数*/
输出梅森数并换行
c++
end if
end while
if(c==0)
输出None
end
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
6 | 3 7 31 |
题中数据 |
1 | None | 较小数据 |
15 | 3 7 31 127 8191 |
较大数据 |
1.1.4 PTA提交列表及说明
提交列表说明:
编译错误:在Dev-c++上编译了几次,思路想出来了,但用代码时逻辑显得有点乱,错了几次,经过调试后,做对了。
1.2输出三角形字符阵列
本题要求编写程序,输出n行由大写字母A开始构成的三角形字符阵列。
输入格式:
输入在一行中给出一个正整数n(1≤n<7)。
输出格式:
输出n行由大写字母A开始构成的三角形字符阵列。格式见输出样例,其中每个字母后面都有一个空格。
输入样例:
4
输出样例:
A B C D
E F G
H I
J
1.2.1 数据处理
数据表达:定义了整型变量,n正整数,i代表行,j代表列;定义了字符型变量c,c用来赋值字符。
数据处理:
定义了整形变量:n正整数,i行,j列
定义字符型变量c
输入正整数n
c ← 'A' /*字符a赋给字符串c*/
for(i←1;i<←n;i++) /*外循环进行行循环*/
for(j←i;j<←n;j++)/*内循环进行列循环*/
输出字符c
c++
end for
换行
end for
end
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
5 | A B C D E F G H I J K L M N O |
无 |
3 | A B C D E F |
无 |
6 | A B C D E F G H I J K L M N O P Q R S T U |
无 |
1.2.4 PTA提交列表及说明
提交列表说明:
编译错误:在经过第一题的洗礼后,如何输出字符阵列,已经有点数了,在百度上找到c='A'是可以从A字符输出后,题目就很简单了。
1.3同构数
一个数恰好出现在它的平方数的右端,这个数就称为同构数。找出1~1000之间的全部同构数。
输出格式:
在一行中输出所有满足条件的同构数,每个数输出占6列。没有其它任何附加格式和字符。
输出样例:
1 5 6 25 76 376 625
1.3.1 数据处理
数据表达:定义了整型变量i用于循环记数,j代表这个数的平方,n在循环中储存i。
数据处理:
定义整型变量i用于循环记数,j代表这个数的平方,n在循环中储存i
for(i←1;i<←1000;i++)/*循环从1到1000*/
n←i /*将i赋值给n8/
j←n*n
if(n←←j%10||n←←j%100||n←←j%1000) /*三种1~1000计算方法及结果,判断是否相等*/
输出占列的同构数
end for
end
1.3.2 实验代码截图
1.3.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
无 | 1 5 6 25 76 376 625 | 无 |
1.3.4 PTA提交列表及说明
提交列表说明:
答案错误:这题开始我是懵的,后来知道一个数的平方右边有这个数就是同构数,我开始在Dev-c++上用了好多for语句和if语句,来在1~1000中寻找,结果,太乱了,逻辑错误,后经室友提醒可能直接用逻辑或把条件并起来,就少了那些算法,但我感觉有点取巧了。
2.代码互评(5分)
同学代码截图
自己代码截图
1.我们变量数不同,他的比我多一点,还有他运用的是for语句中加if语句,而我运用的是嵌套循环。
2.我定义了字符型变量,而他直接用的'A'。
3.他的算法是循环递减,.而我的是循环递增。
同学代码截图
自己代码截图
我和他的最大不同是算法不同,语句使用也略有不同。他是利用求根来判断是否为梅森数。
3.学习总结(15分)
3.1 学习进度条(5分)
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
9.16~9.22 | 6h | 20 | 初步了解编程如何进行 | 编程开始的单词有什么作用,编译是如何进行的 |
9.23~10.6 | 30h | 30 | 学会运用markdown语法和了解博客园作业格式 | 如何在博客随笔字体加颜色 |
10.7~10.11 | 48h | 235 | 学会了if语句和编程的数学函数怎么写 | while语句如何使用和电脑上表格和why手机上顺序不一样 |
10.14~10.20 | 36h | 100 | 掌握使用for循环语句 | 对多种循环结构不够了了解以及分支结构和循环结构同时使用的编程先后。 |
10.20~10.27 | 32h | 135 | 如何对函数的定义和调用,思维导图 | 函数的调用和定义有没有局限性。 |
10.28~11.3 | 36h | 512 | 熟悉多分支结构、字符型数据类型和逻辑运算符 | 四则运算和字符型变量 |
11.4~11.10 | 12h | 232 | 熟悉多分支结构switch语句的使用 | 在博客园中如何添加小挂饰 |
11.11~11.17 | 18h | 263 | 熟悉使用while和do-while结构 | 字符的实际使用 |
11.18~11.24 | 20h | 186 | 熟悉break、continue的使用,熟悉使用循环的嵌套解决问题 | 嵌套循环的逻辑 |
11.25~11.1 | 22h | 270 | 选择合适的算法、合理的循环结构,熟练的编写程序 | 数组的运用 |
3.2 累积代码行和博客字数(5分)
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习体会
本周PTA还是有难度的,第一题才是挑战题吧,我死磕第一题无奈败北,耽误许多时间,这周我压力剧增,这周PTA综合较强,但有好多同学认为太简单,很快做完了,秀了我一脸,而我还是需要借助百度百科,这让我压力山大,不能再打游戏了,刷题才是王道,我得好好刷题,不然都被大佬们甩开十万八千里了。每个知识点认真学,才能在综合题上不困惑,准确找到合适算法和语句,就像在数学中从高二进入了高三一样,全是综合题,需要把所学知识融会贯通,才能有所作为,剩下的一个月里,我需要好好练练了。