1.PTA实验作业(20分/题)

1.1.幸运彩票

1.1.1数据处理
数据表达:本题目的变量是n和a[100] 都是整型;用户通过在键盘上输入得到的。
数据处理:运用了if-else分支结构 和 for循环语句。
表达式:
for (int i = 0; i < n; i++)
if ((a[i] / 100000) + ((a[i] / 10000) % 10) + ((a[i] / 1000) % 10) == ((a[i] % 1000) / 100 + (a[i] % 100) / 10 + (a[i] % 10)))
1.1.2实验代码截图

1.1.3 造测试数据
输入数据 |
输出数据 |
说明 |
2 233008 123456 |
You are lucky! Wish you good luck. |
给出两行 |
1 233008 123456 |
You are lucky! |
只给一行 |
3 233008 123456 |
You are lucky!Wish you good luck.You are lucky! |
给出三行 |
4 233008 123456 232566 224354 |
You are lucky! Wish you good luck. Wish you good luck. Wish you good luck. |
给出四行和四组彩票号 |
1.1.4 PTA提交列表及说明

提交列表说明:
1.编译错误:中文字符与英文字符分号混用。
2.编译错误:scanf()语句后无分号结束语句。
3.编译错误:Wish you good luck.输出格式缺少.
4.编译错误:return 0语句后无分号。
1.2.Wifi密码

1.2.1 数据处理
数据表达:本题目的变量是N和字符数组str[16];N是整型;用户通过在键盘上输入得到的。
数据处理:运用了if条件判断语句 和 for循环结构。
表达式:
for (int i = 0; i < N; i++)
for (int j = 2; j < strlen(str); j += 4)
if (str[j] == 'T')
1.2.2实验代码截图

1.2.3 造测试数据
输入数据 |
输出数据 |
说明 |
8 A-T B-F C-F D-F C-T B-F A-F D-F A-F D-F C-F B-T B-T A-F C-F D-F B-F D-T A-F C-F A-T C-F B-F D-F D-T B-F C-F A-F C-T A-F B-F D-F |
13224143 |
无 |
8 A-T B-F C-F D-F C-T B-F A-F D-F A-F D-F C-F B-T B-T A-F C-F D-F B-F D-T A-F C-F A-T C-F B-F D-F D-T B-F C-F A-F C-T A-F B-F D-F |
1322414 |
无 |
1.2.4 PTA提交列表及说明

提交列表说明:
1.编译错误:scanf()语句后无分号结束语句。
2.编译错误:return 0语句后无分号。
3.编译错误:中文字符与英文字符分号混用。
2.代码互评(5分)
题目: 打印九九口诀表
1.同学代码:

自己代码:

1.同学采用的是for循环,采用循环的嵌套实现,我才用的是一个if的判断再采用两个for循环的嵌套.
2.思路上大同小异同学乘数与行数对应作为for循环的条件。
3.出发点不同,我巧妙的一步num = (n * (n + 1)) / 2
3.学习总结(15分)
3.1 学习进度条(5分)

3.2 累积代码行和博客字数(5分)


3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
通过第七周的学习,我们学会了运用break,continue语句和循环的嵌套的构想解题思路,熟悉使用break和continue语句解决问题,让我们心中的C语言枝丫又长大了一点。另外关于课堂的遗留问题-如何做到跳出多重循环的解决方法.
1.我们可以使用goto语句
例如:
for (int i = 0; i < MAX1; i++)
{
for (int j = 0; j < MAX2; j++)
{
if (condition)
{
symbol = 1;
goto outloop;
}
}
}
outloop:
//somecode
2.写成函数 return
例如:
for ()
{
for ()
{
for ()
{
if(condition)
{
symbol = 1;
return;
}
}
}
}
3. 直接修改外层循环条件
例如:
for(int i = 0; i < MAX1; i++)
{
for(int j = 0; j < MAX2; j++)
{
if(condition1)
{
symbol = 1;
i = MAX1;
break;
}
}
}
4.在外层循环设置判断条件,内层循环判断满足条件修改标志后 外层循环进行判断:
例如:
for(;symbol != 1 && condition1;)
{
for(;symbol != 1 && condition2;)
{
for(;symbol != 1 && condition3;)
{
if(condition)
{
symbol = 1;
}
}
}
}
5.在大循环后面判断标志加入break
例如:
for(;condition1;)
{
for(;condition2;)
{
for(;condition3;)
{
if(condition)
{
symbol = 1;
}
}
if (symbol == 1){
break;
}
}
if(symbol == 1){
break;
}
}

3.3.2 学习体会
1.每当接触一个新的知识点时,在自己理解的情况下,多去实践,亲自运用起来,或者去敲别人的好的代码,理解学习别人代码的优点。
2.时刻做好笔记,做好盲点,不懂的名词积极百度,实时记录下来。
3.在听好视频课程的前提下,要多加训练,不一定要是刷某个题,带着探究精神去探究它的奥妙,它的规律,计算机的思维,等等,联想到更多东西。
4.尽可能降低自己的压力,能简单化的事情,不要复杂化。拿出更多的时间去学习新知识,并实践。
5.知识到手了,但是我们要去做更多的练习,刷题 刷题 再刷题。
6.对待任何事情不能急于求成,代码不能囫囵吞枣,自己的思维最重要,照搬现套,不可取,形成自己独有的思维最为重要。
7.真正要掌握好c语言,必须,必须要实践。也就是敲代码,多练练手!比如一些课本会有相应的编程例题,网课也有些例子 可以跟着敲。
8.但是最主要的是最后能通过自己把相应代码敲出来,而不是照抄。这个过程很艰苦,但一定要坚持。
9.改他人代码是一件有趣的事情,一题多解,修改他人的代码的基础上自己再创建新的题解。
10.我们在编写一个较大的程序时应该把它分开成几个小程序来看,这样会容易得多。同时,我觉得c语言应该是操作和理论相结合的课程,在不断地编写中去思考,两者是不可分割的
11.我个人觉得在C语言的学习首要任务是明确你学习C语言的目的。
如果是为了兴趣,那就浅尝辄止,深入的话太枯燥了,估计也没学的动力。
如果是为了学业,那就去弄懂课本和习题就行了,不懂的问老师,还不懂的话就把正确代码编出来,然后一行行printf打印,肯定能弄懂的。
如果是为了工作,这个又分两类,一类是想找编程开发的工作,建议java或C#、python之类的语言,C语言越来越式微了;另一类就是想要搞C语言开发,那也可以,那倒是可以深入学学。
13.良好的编程习惯也是学好C语言的重要因素。例如编写程序时用缩进的方式、写注释、程序写到一定的阶段时要做一下测试等。这些工作可以帮我们在调试程序时有很大的帮助。程序代码实现后,错误是难免的,所以也要锻炼自己的调试查错能力,而良好的编程习惯可以使我们在调试时减小工作量和提高调试效率,也有助于形成自己的编程风格。
14.想学好C语言,交流是必须的,尤其是学习C语言的新手,这里,我向大家推介――百度C语言贴吧,这里有很多的学习者,也有很多高手,在这里你能学到课本以及课堂上学不到的东西。和他人交流也是很重要的。
15.无论学习什么知识,笔记是重点,俗话说:好记性不如烂笔头。一个认真学习的人,总是记了很多笔记的,想学好编程,你的笔记本上总有课本上的每一个例题代码的核心部分。以及八大经典的算法举例,递推、递归、穷举、贪心、分治、动规、迭代、分枝。