第三次博客作业
目录
0.展示PTA总分
1.本章学习总结
1.1 for循环语法
for(初始动作;循环继续的条件;循环每轮要做的动作)
{
循环体语句;
}
1.2 while、do while循环语法
- while循环:
While(循环条件){
循环体语句;
}
- do-while循环:
do
{
循环体语句;
}while(循环条件);
1.3 跳出循环相关语句break\continue
- break会跳出一层循环
int i=1;
for(int j=1;j<=3;j++)
{
i++;
break;
}
printf("%d\n",i);
这段语句运行时会输出2
- continue会跳过循环这一轮剩下的语句进入下一轮
int i=1;
for(int j=1;j<=3;j++)
{
i++;
continue;
}
printf("%d\n",i);
这段语句运行时会输出4
1.4 循环嵌套
- 循环嵌套
顾名思义循环嵌套就是循环中还有循环,三种循环语法均可再加入一层循环,新增循环的语法随意。 - 循环控制
(1)break:
break只能结束一层循环,并不是结束所有循环。特殊情况下,若想结束所有循环可以使用return语句结束函数从而结束所有循环。
(2)continue:
continue只能跳过本层循环的本轮剩下的循环语句,并不是跳过所有循环。
(3)goto:
goto可以将程序的运行跳到指定标号位置,一般在用于跳出多层循环中使用,但是goto会打乱程序的顺序结构,一般不建议使用。 - 运行顺序(第一次博客作业中不理解的地方)
一般来说,嵌套循环的运行顺序是从内部循环一轮一轮,一层一层运行至最外层循环。
1.5 学习体会
- 学习感受
(1)本章学习比分支结构更吃力,PTA上部分正确有时要想很久才能知道为什么错了。
(2)单循环的倒数第二题没有头绪。 - 不理解的地方
(1)三种语法的选择有些模糊。
(2)三种循环的语法及循环控制都能理解,但是题目有时就是不会做。 - 代码量
PTA中单循环及嵌套循环所做的题目。
2 编程技巧总结
- 循环控制
可以使用return语句结束多层循环 - 最后一个空格
在循环题目中,有许多题都会让我们输出一系列数,每个数之间要有空格隔开,但最后一个数后面不能有空格。这时可以定义一个整型变量flag,第一次输出时可以输出“%d”(没有空格),然后flag++;,之后的每次输出可以输出“ %d”(在数的左边有空格)。 - 数字逆序
可以使用
(1)取出某一整型数字a的个位数:a = a%10;
(2)去除某一整型数字a的个位数:a = a/10;
循环一个数乘10加接下来的数将所求数逆序。 - printf调试
循环次数较多时,可以在合适的位置构造printf语句进行调试; - 图形打印问题注意事项
上半部分与下半部分规律不一样。
上半部分规律:星号数目是行数的二倍减一,空格数是上半部分总行数减去它所在的行号;
下半部分规律:从下半部分开始算起,每行星号数是2line-2n-1,空格数目为它所在的行号
3 PTA实验作业
3.1 数列求和问题
3.1.1 思路
定义题目中要求的两个整型变量a,n。定义结果整型变量sum及每一项整型变量item。
每一项为item = item + pow(10,i-1)*a。
3.1.2 代码截图
3.1.3 PTA提交列表及说明
没有问题
3.2 图形打印问题
3.2.1 数据处理
定义行数整型变量i,列数整型变量j。
3.2.2 代码截图
3.2.3 PTA提交列表
3.3 printf调试(龟兔赛跑)
3.3.1 printf调试截图
3.3.2 代码截图
3.3.3 提交列表:
Q:没有考虑到兔子休息不到30min的情况。
A:使用printf调试发现。