zoukankan      html  css  js  c++  java
  • 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 代码截图

  • 相关阅读:
    ubuntu frp 自编译。本文不能按顺序来 请自己理解
    油猴子 自改脚本 删除页面 div 上下翻页 视频页内全屏 右键可用
    批处理bat 删除指定文件夹下的文件及文件夹
    LUA 静态库 动态库 LD_LIBRARY_PATH 动态库的查找路径 GCC “-l”参数
    delphi 判断奇数偶数
    sf.net
    cmake指定mingw编译器的方法
    关闭delphi ide皮肤
    arch pacman被删除 重装
    delphi 匿名方法访问var参数
  • 原文地址:https://www.cnblogs.com/cqq666/p/14016913.html
Copyright © 2011-2022 走看看