• 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 跳出循环相关语句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添加监视
    • 点击逐语句就可以知道代码的运行情况

    3.3.2 代码截图

  • 相关阅读:
    hdoj 2803 The MAX【简单规律题】
    hdoj 2579 Dating with girls(2)【三重数组标记去重】
    hdoj 1495 非常可乐【bfs隐式图】
    poj 1149 PIGS【最大流经典建图】
    poj 3281 Dining【拆点网络流】
    hdoj 3572 Task Schedule【建立超级源点超级汇点】
    hdoj 1532 Drainage Ditches【最大流模板题】
    poj 1459 Power Network【建立超级源点,超级汇点】
    hdoj 3861 The King’s Problem【强连通缩点建图&&最小路径覆盖】
    hdoj 1012 u Calculate e
  • 原文地址:https://www.cnblogs.com/cqq666/p/14016913.html
Copyright © 2020-2023  润新知