循环

| 这个作业属于哪个班级 | C语言--网络2011/2012 |
| ---- | ---- | ---- |
| 这个作业的地址 | [C博客作业02--循环结构](https://edu.cnblogs.com/campus/jmu/2020C/homework/11483 |
| 这个作业的目标 | 学习循环结构内容,包括for循环、while循环、循环嵌套 |
| 姓名 | 吕以晴 |



0.展示PTA总分


1.本章学习总结

本章主要学习了循环结构,其适用于在程序中需要反复执行某个功能时。
可通过循环体中的条件,来判断是应继续执行某个功能还是退出循环。

1.1 for循环语法

🌙语法展示

for(条件1;条件2;条件3)
{
      循环体
}

🌙注意事项

  • for循环括号内的条件可省略,但不能省。
  • 只有满足括号内条件时执行循环,若不满足则退出。

🌙简单案例

1.2 while、do while循环语法

🌙语法展示

  • while循环
while(条件)
{
      循环体
}
  • do-while循环
do
{
      循环体
}
while(条件)

🌙注意事项

  • while循环和do-while循环的区别:前者是先判断再循环;后者是先进行一次循环后再判断。

🌙简单案例

  • while循环

  • do-while循环

1.3 跳出循环相关语句break\continue

🌙注意事项

  • break是跳出当前循环,执行循环下面的其他语句;而continue是不执行该循环剩下的所有语句,结束本次循环,继续下一次循环的判断。
  • 在分支结构中用break语句可以使程序跳出switch语句,继续执行其下面的程序。
  • break语句只能用于循环语句与switch语句。
  • continue语句只能用于循环语句。

🌙简单案例

  • continue

    若输入0 1 2 3 4 ,则会输出


可见,虽然第一次num=0使程序执行了continue语句,但循环仍未退出,只是不再执行continue之后的程序(输出0后没有输出exam),终止了那一次循环,开始下一次循环(继续输出了error和exam)。



  • break

若输入0 1 2 3 4 ,则会输出



可见,当第一次num=0使程序执行了break语句,循环就直接退出了(输出了0和right)。



1.4 循环嵌套

🌙语法展示

for(条件1;条件2;条件3)
{
    循环体;
    for(条件a;条件b;条件c)
    {
        循环体;
    }
}

🌙注意事项

  • 嵌套循环,需注意循环内部参数的重新赋值,以免影响下次循环。

🌙简单案例

学习体会

  • 循环结构的使用最应该注意的就是循环进入和退出的条件,要防止出现循环无法进入或循环无法退出的情况。


2.编程技巧总结

🌙数列求和问题

技巧

  • 对于求和问题,首先第一想法应想到要使用循环结构实现累加。
  • 定义变量sum时,必须先初始化sum=0。
  • 注意累加的第一项和最后一项,并要关注退出循环的条件书写是否正确,防止出现死循环。
  • 使用sum+=num的形式来实现累加,可根据题意对num进行适当变化。


🌙字符转为数字


技巧

  • 字符与数字的转化利用的是ASCII码,如‘1’对应的ASCII码为49,而‘0’为48,所以‘1’-‘0’=1。
  • 但由于ASCII码表只包含0到9的数字,所以这种方法只适用于个位数。


🌙大小写字母转化


技巧

  • 字母的大小写转化同样是利用了ASCII码,小写字母az是97122,而大写字母AZ是6590。
  • 所以大小写字母的转化公式为:大写字母=小写字母-32
  • 又因为空格的ASCII码为32,所以也可以写成:大写字母=小写字母-‘空格’


🌙数字逆序问题


技巧

  • 数字逆序问题考虑使用数组来储存需处理的数据。
  • 通过循环结构将数组arr[i]与arr[n-1-i](i=0;i++)相互转化,从而实现数字的逆序。


🌙图形打印问题


技巧及注意事项

  • 注意空格及字符的个数随行数变化的规律。
  • 可以考虑使用双重循环来解决图形打印问题,外层循环控制层数,内层循环控制字符及空格数。
  • 对于对称图形,可以以对称轴下一行为界,分为两种情况。


🌙四则运算

技巧及注意事项

  • 四种运算符的优先级相同,算式是根据输入的顺序从左到右进行计算的,而非根据数学法则。即,若用户输入5+3*2,程序会先计算5+3,然后再令其值乘以2。
  • 除法运算时需注意,分母不能为0,应该单独分出一种情况。
  • 为实现计算的连续性,统一采用一个变量来储存各种运算的结果,并用这个结果再次参加下次运算。
  • 若输入非加减乘除及数字的字符,应判定为非法运算符,输出error。
  • 遇到等号后,直接输出储存结果的那个变量的值。


3.PTA实验作业

3.1 数列求和问题

🌙3.1.1 流程图或伪代码介绍思路

🌙3.1.2 截图代码

🌙3.1.3 PTA提交列表及说明

  • sum定义时应该先初始化为0。
  • 注意循环的次数与循环退出的条件。
  • 每一项是在之前项的基础上加上一个a*pow(10,i-1)[1],而不是直接加上或乘上a。


3.2 图形打印问题

🌙3.2.1 流程图或伪代码介绍思路

🌙3.2.2 截图代码


🌙3.2.3 PTA提交列表及说明

  • 注意观察每行的字符及空格数与行数的关系
  • 注意合理利用ASCII码以达到字母回退的效果
  • 若要输出此类空心字符,可将每行的首位及末位单列出来使其输出字符,其余情况直接输出空格即可。


3.3 计算单词长度

🌙3.3.1 单步调试截图



第一个while条件括号内写了scanf语句,但嵌套的while下也要写,否则会出现嵌套的while结构死循环,经过printf()调试,发现输入的ch恒为I



可见,若嵌套的while结构下不写scanf语句,那输入的ch就不会改变,导致死循环.
也可写为以下形式,while条件括号内用1来构造循环。


🌙3.3.2 截图代码

🌙3.3.3 PTA提交列表及说明

  • 若未使用flag容易使输出时末尾错误出现空格。
  • 注意字符的输入与输出均是使用%c。

  1. i=1;i<=n;i++ ↩︎

posted @ 2020-11-22 22:54  noyiie  阅读(175)  评论(0编辑  收藏  举报
// 侧边栏目录 // https://blog-static.cnblogs.com/files/douzujun/marvin.nav.my1502.css