这个作业属于哪个班级 | 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 跳出循环相关语句breakcontinue
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
", i, j);
}
printf("
");
}
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添加监视
- 点击逐语句就可以知道代码的运行情况