循环结构
| 这个作业属于哪个班级 | 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;
检查发现{}没了

修改后

提交后

 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号