第三次博客作业

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调试发现。

posted @ 2020-11-22 20:38  巫云☁️  阅读(127)  评论(0编辑  收藏  举报