循环结构
这个作业属于哪个班级 | C语言--网络2011/2012 |
---|---|
这个作业的地址 | C博客作业00--顺序分支结构 |
这个作业的目标 | 学习循环结构内容,包括for循环、while循环、循环嵌套 |
0.展示PTA总分
1.本章学习总结
1.1 for循环语法
for (循环变量类型 循环变量名称;循环结束条件;更新语句)
{
循环体
}
1.2 while、do while循环语法
while(表达式)
{
语句1;
语句 n;
}
do
{
语句;
表达式3;
} while(表达式2);
1.3 跳出循环相关语句break\continue
break是结束整个循环体,continue是结束单次循环
while(x++ < 10)
{
if(x == 3)
{
break;
}
printf("%d\r\n", x);
}
结果是输出 1 2 就退出了整个while循环
while(x++ < 10)
{
if(x == 3)
{
continue;
}
printf("%d\r\n", x);
}
结果是:1 2 4 5 6 7 8 9 10 可见他仅仅是不输出3,因为他结束了本次循环
1.4 循环嵌套
规则:1.内循环作为外层循环的循环体,每次执行外层循环,内层循环都要完整的循环一次
2.假设外层循环执行m次,内层循环执行n次,则循环总次为二者乘积,即mn。
例子
本题要求编写程序,打印一个高度为n的、由“”组成的正菱形图案。
外循环作为空格数
内循环作为*数
for(int i=0;i<n;i++)
{
for(int j=0;j<s;j++)
{
printf(" ");
}
s-=2;
for(int k=1;k<=m;k++){
if(k==m){
printf("* \n");
}else{
printf("* ");
}
}
if(m==n){
break;
}
m+=2;
}
m-=2;
s=2;
for(int i=n-2;i>=1;i-=2){
for(int j=0;j<s;j++){
printf(" ");
}
s+=2;
for(int j=1;j<=m;j++){
if(j==m){
printf("* \n");
}else{
printf("* ");
}
}
m-=2;
}
2.编程技巧总结
+各种数列求和问题:找到数列求和题目中每次循环对应的规律再将其累加
+字符如何转数字、数字逆序问题:
利用%10再/10来取末位数,当/10后数字为零时则数字已经被拆分成多个单位数再来排序
+图形打印问题:找到图形空格和符号在整个图形中对应的数学规律再用循环表达
+四则运算:这个想不到什么注意的事项
3.PTA实验作业
3.1 数列求和问题
题目:
3.1.1 流程图
3.1.2代码截图
3.1.3 PTA提交列表及说明
遇到这种题目先找到其单独项的数学规律在进行循环求和,注意循环终止的条件。
3.2 图形打印问题
题目:
3.2.1 数据处理
题中主要数据有'*'的数量Star
' '的数量Spaces
行数i
3.2.2 代码截图
3.2.3 PTA提交列表及说明
这个题目中由于''' '都不是单调变化的而是都在中间去最大或者最小,于是我用绝对值来计算更加简便,注意输出''要判断是否已是所在行的最后一个
借此来决定是否换行
3.3printf调试检查错误
题目:
3.3.1 printf调试截图
发现未曾进入循环且i的值大于输入最大值N;
检查发现{}没了
修改后
提交后