C语言博客作业02--循环结构

| 这个作业属于哪个班级 | C语言--网络2011/2012 |
| ---- | ---- | ---- |
| 这个作业的地址 | C博客作业00--循环结构 |
| 这个作业的目标 | 学习循环结构内容,包括for循环、while循环、循环嵌套 |

1.本章学习总结

1.1 for循环语法

for(表达式1;表达式2;表达式3)
{
循环体语句;
}
  • for语句在循环前先判断条件,只有条件满足才会进入循环,如果一开始条件就不满足,则循环一次都不会执行。
  • 在for语句的执行过程中,表达式2、循环体语句和表达式3将重复执行,而表达式1只在进入循环前执行一次。
  • 如果循环体语句由多条语句组成,必须用大括号把它们括起来,变成一条复合语句。
  • 一般在知道循环次数时使用for语句将会更加清晰。

1.2 while、do while循环语法

while语句

while(表达式)
{
循环体语句;
}
  • while语句中的表达式可以是任何合法的表达式,循环体语句只能是一条语句。
  • while语句在循环前先判断条件,只有条件满足才会进入循环,如果一开始条件就不满足,则循环一次都不会执行。
  • 一般未给出循环次数时选用while语句。
    do——while语句
do
{
循环体语句
}
while(表达式);
  • do——while语句和for语句和while语句略有不同,它先执行循环体,后判断循环条件,所以无论循环条件的值如何,至少会执行一次循环。

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

beak语句

  • 当循环结构中出现多个循环条件时,可以由循环语句中的表达式和break语句共同控制,break语句强制循环结束。
  • 执行break语句意味着循环提前结束,不再执行循环体中位于其后的其他语句。
  • break语句应配合if语句使用,及条件满足时,才执行break跳出循环;否则,若break无条件执行,意味着永远不会执行循环体中break后面的其他语句。

continue语句

  • continue语句的作用是跳过循环体中continue后面的语句,继续下一次循环。
  • continue语句一般也需要与if语句配合使用。
    区别:continue语句和break语句的区别在于,break结束循环,而continue只是跳过后面语句继续循环。break除了可以中止循环外,还用于switch语句,而continue只能用于循环。

1.4 循环嵌套

  • 所谓嵌套,就是一条语句里面还有另一条语句,例如 for 里面还有 for,while 里面还有 while,或者 for 里面有 while,while 里面有 if-else。
#include <stdio.h>
int main()
{
    int i, j;
    for(i=1; i<=4; i++){  //外层for循环
        for(j=1; j<=4; j++){  //内层for循环
            printf("i=%d, j=%d\n", i, j);
        }
        printf("\n");
    }
    return 0;
}
  • 上述是一个简单的 for 循环嵌套,外层循环和内层循环交叉执行,外层 for 每执行一次,内层 for 就要执行四次。

2.编程技巧总结

  • 各种数列求和问题
    如果遇到很多项相加求和时,可设置一个变量sum,令其初始值为0,然后做自加运算;如果遇到很多项相乘求积的情况,设置一个变量,令其初始值为1,然后做自乘运算;如果遇到正负交替求和的情况,定义一个变量flag,每循环一次flag变号。
  • 字符如何转数字、数字逆序问题
#include<stdio.h>
int main()
{
	int i; 
	int temp = 0;

	scanf("%d", &i);
	while (i != 0)     
	{
		temp = temp * 10 + i % 10;
		i /= 10;                
	}
	printf("%d", temp); 
	return 0;
}

按位取余

  • 图形打印问题

    首先明白需要明白图形需要占据多少行,再明白每行需要多少个空格和“”,用三个变量定义行数,空格数和“”数,再找到三个变量之间的关系,利用for循环实现。
  • 四则运算
switch(op)
{
      case 1: op='+';break;
      case 2: op='-';break;
      case 2: op='*';break;
      case 2: op='/';break;
 }

定义一个字符型变量,运用switch语句。

3.PTA实验作业

3.1 数列求和问题

3.1.1 流程图

3.1.2 代码截图

3.1.3 PTA提交列表及说明

  • 刚开始未乘以1.0,导致编译错误,在for语句中i<=n中未加等号,导致循环少一次结果不正确。

3.2 图形打印问题

3.2.1 数据处理

  • 定义三个变量,找到行,空格数,“*”的数量三者之间的关系建立表达式,再利用for循环实现。

3.2.2 代码截图

3.2.3 PTA提交列表及说明

  • 起初没注意题目要求每行都要空五格,在vs调试后答案正确,但几次在pta都显示格式错误,应该是空格的问题,还在摸索中。

3.3正负数个数

3.3.1 单步调试截图

  • 在scanf语句前添加一个断点
  • 开始调试,输入n的值

    若要知道i,j的值的变化,就需要对i和j添加监视
  • 点击逐语句就可以知道代码的运行情况

3.3.2 代码截图

posted @ 2020-11-22 22:57  ····。。  阅读(232)  评论(0编辑  收藏  举报