C语言I博客作业08
| 这个作业属于那个课程: | C语言程序设计II |
|---|---|
| 这个作业要求在哪里: | https://edu.cnblogs.com/campus/zswxy/CST2020-2/homework/11611 |
| 这个课程的目标是: | 学会并掌握且巩固循环结构并熟练运用循环跳出语句break,continue语句,还学习了循环的嵌套,运用循环的嵌套解决多重循环的题目,并熟练使用break和continue语句解决问题 |
| 学号: | 20208980 |
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;
}
}


浙公网安备 33010602011771号