首页 > 编程语言 >第4章 循环结构程序设计

第4章 循环结构程序设计

时间:2024-12-30 09:18:43浏览次数:7  
标签:变量 int sum while 循环 程序设计 main 结构

4.循环结构程序设计

4.0 编写循环程序要解决的3个问题

  • 1.循环变量赋初值
  • 2.循环条件
  • 3.循环变量值的调整
    • 目的在于让循环条件在某时变为假,结束循环

4.1 while循环:“当型”循环

  • 1.一般形式
while(表达式) {  // 表达式可以是任意类型的表达式
    语句序列;
}
  • 2.执行逻辑

    • 2.1 计算表达式的值,若结果为真(非0),则进入2.2,开始一次循环周期;否则进入2.3
    • 2.2 执行“{}”内的语句序列(循环体)
    • 2.3 结束循环,执行while循环后方(“}”之后)语句
  • 3.注意

    • 避免出现“死循环”,会破解死循环
    • 当第一次判断表达式的值为假(0)时,循环体执行0次
    • 当循环体中只有一条语句时可省略“{}”,但不建议这么做。养成加“{}”的习惯
  • 4.while死循环案例

    • 1.不带变量的死循环
    #include <stdio.h>
    #include <windows.h>
    int main() {
    	while(3) {	
            printf("2022级网络技术班!\n"); 
            Sleep(1000);
    	}
      return 0;
    }
    
    • 2.带变量的死循环
    #include <stdio.h>
    int main() {
      int i = 3;
    	while(i) {	
            printf("2022级网络技术班!\n "); 
    	}
      return 0;
    }
    
    
    • 3.带变量并破解死循环
    #include <stdio.h>
    int main() {
     int i = 3;
      while(i) {	
          printf("2022级网络技术班!\n "); 
          i --;    //  -- i也可以
      }
      return 0;
    }
    
    • 4.带变量、破解死循环代码量缩减
    #include <stdio.h>
    int main() {
      int i = 3;
    	while(i --) {	
            printf("2021级卓越3班!\n"); 
    	}
      return 0;
    }
    
  • 5.while循环案例

    • 1.编程求1+2+3+4+5之和。
    // 分析:1.选择基本结构。题目需求一直在重复一个动作——做加法,很容易想到用循环结构!此处选择while循环(其他类型的循环也可以完成)。
    // 2.如何通过变量来控制循环开始或结束?
    // 2.1 在程序中给定一个变量,这个变量通常用于控制循环的开始和结束,称其为“循环变量”(如案例中的int i;);
    // 2.2 该循环变量通常写在“表达式”中,定义时会给定一个初值(可随意),且能确定让循环结束(如a = ?; a = 1; a=100; a=9999);
    // 2.3 该循环变量有一定的范围(> >= < <=),循环执行过程中循环变量的值会改变(++ -- =),当其超出范围后循环结束(如while(a <= ?) a ++;)。
    // 3.仅仅有了循环变量还不能得到最终的结果呢?“循环变量”i的值遍历了1、2、3、4、5这5个数;定义一个用于存储加和的变量sum,每当
    // i增加了1,就把i累加到sum中。即 sum = sum + i; sum初值为0,不影响对i累加的值。当循环结束时,sum中存储的大概率就是求得的和。
    #include  <stdio.h>
    int main( ){	
       int sum, i;
    	 sum = 0;			// 累加器sum置0      
    	 i = 1;			// 循环变量i赋初值1   
    	 while (i <= 5) {	
           sum = sum + i;	// 将i值累加到sum中  
    	     i = i +1; 			// 改变循环变量i的值  
    	}
    	printf("1+2+3+4+5 = %d", sum );
      return 0;
    }
    
    • 2.编写循环程序求1+2+3+4+5+…+100之和。
    // 分析:本题思路与上题一致,只将循环范围修改即可
    int main( ){	
       int sum, i;
    	 sum = 0;     
    	 i = 1;
    	 while (i <= 100) {	
           sum = sum + i;
    	     i = i +1;
    	}
    	printf("1+2+3+...+100 = %d", sum );
      return 0;
    }
    
    • 3.编写循环程序求1-2+3-4+5-6+7-8的值。
    // 分析:该程序与上例的最大区别在于公式中有加法也有减法,需要用代码完成题目中加减号的变换。怎样完成呢?把“1-2+3-4+5-6+7-8”这    
    // 个式子改头换面。“一会加一会减”的程序不容易写,但“一直加”的我们学过了。
    // 1-2+3-4+5-6+7-8=1+(-2)+3+(-4)+5+(-6)+7+(-8)这样不够明显
    // 1+2*(-1)+3+4 *(-1) +5+6 *(-1)+7+8 *(-1) 这样还不够明显
    // 1*1+2*(-1)+3 *1 +4 *(-1) +5*1 +6 *(-1)+7 *1 +8 *(-1)
    // 运算逻辑为1-8看作循环变量 i,每循环一次就把1的值乘1或-1后累加到sum中。
    
    #include <stdio.h>
    int main() {
    	int i = 1, sum = 0;
    	int t = 1;
    	while(i <= 8) {
    		sum = sum + i * t;
    		i ++;
    		t = -t;
    
    	}
    	printf("%d", sum);
      return 0;
    }
    
    
    • 4.编程计算1+1/2+1/4+1/8+1/16+…的值,直到最后一项值小于0.0001。
    //分析:1.此程序累加式中的规律:从首项1开始,依次乘以1/2就是下一项,但注意C程序中的1/2值为0;
    //2.定义循环变量i,初值为1.0,循环条件为i >= 0.0001;
    //3.定义累加变量sum,初值为0.0,每经历一次循环就将i累加到sum中,同时i的值自动减半。
    #include <stdio.h>
    int main(){
        float t = 1.0;
        double sum = 0;
        while(t >= 0.0001) {
          sum = sum + t;
          t = t / 2;
        }
        printf(“sum=%f\n”, sum);
        return 0;
    }
    

4.2 do...while循环:“直到型”循环

4.3 for循环

4.4 多重循环

4.5 break语句和continue语句

4.6 循环结构程序设计实例

标签:变量,int,sum,while,循环,程序设计,main,结构
From: https://www.cnblogs.com/zjl-linux/p/18639591

相关文章

  • 系统思考—结构影响行为
    重新认识“棉花糖实验”:环境决定行为史丹佛大学的“棉花糖实验”曾让人以为,自制力是成功的关键。但加州大学的新研究发现,孩子能否延迟满足,其实与成长环境息息相关,而不是单纯的自律问题。在稳定、值得信赖的环境中,孩子学会了等待的意义;而在充满不确定性的环境中,孩子倾向于......
  • 408数据结构—顺序表和链表
    一、写在最前线性表是一种逻辑结构,表示元素之间一对一的相邻关系,同时还有非线性表顺序表和链表是存储结构,两者属于不同层面的概念我们可以用顺序表和链表实现线性表线性表:个数有限,相同类型,有先后次序(前驱后驱)二、顺序表定义线性表的顺序存储又称顺序表。它是用一组......
  • 408数据结构—时间复杂度的计算
    算法效率的度量是通过时间复杂度和空间复杂度来描述的。时间复杂度在统考中是一大重点,在算法设计题里通常都会要求分析时间复杂度,空间复杂度,同时还会出现考察时间复杂度的选择题,所以需要考生熟练掌握一、时间复杂度频度:一个语句的频度是指该语句在算法中被重复执行的次数......
  • 学期2024-2025-1 学号20241424 《计算机基础与程序设计》第14周学习总结
    学期2024-2025-1学号20241424《计算机基础与程序设计》第14周学习总结作业信息|这个作业属于2024-2025-1-计算机基础与程序设计)||-- |-- ||这个作业要求在2024-2025-1计算机基础与程序设计第14周作业||这个作业的目标|<学习《C语言程序设计》第12章并完成云班课测试>||作......
  • 数据结构复习
    背诵线性表前驱:后继表长:空表:首元结点:头结点:头指针线性表的结构特点,除了第一个和最后一个元素外,每个节点都只有一个前驱和后继。线性表的存储方式:栈与队列顺序栈链栈链队列栈与队列存储数据栈的应用:循环列表判队空、队满条件,......
  • 【初阶数据结构与算法】八大排序之非递归系列( 快排(使用栈或队列实现)、归并排序)
    *文章目录一、非递归版快排1.使用栈实现非递归版快排2.使用队列实现非递归版快排二、非递归版归并排序1.非递归版归并排序的实现一、非递归版快排1.使用栈实现非递归版快排   在学习非递归版快排前,建议大家先学习递归版的快排,否则非递归版的快排将很难理解,这......
  • [算法/数据结构]系列 华为面试原题:和为n的子串(前缀和+哈希表)
    [算法/数据结构]系列华为面试原题:和为n的子串(前缀和+哈希表)文章目录[算法/数据结构]系列华为面试原题:和为n的子串(前缀和+哈希表)面试原题样例分析代码及思路面试原题输入一串只有0和1的数组,返回输入和为n的子串的个数。样例:输入:[011100],n=3输出:6样......
  • 学期2024-2025-1学号20241416《计算机基础与程序设计》第十四周学习总结
    作业信息这个作业属于哪个课程 <班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里 <作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)这个作业的目标 <写上具体方面>作业正文 https://www.cnblogs.com/manurios/p/18639504教材学习内容总结C......
  • 2024.12.29-3 结构体与数组
    一个案例,讲明定义用法:#include<stdio.h>#include<string.h>structStudent{      intnum;   charname[32];   intage;   charsex;   charaddr[32];   doublescore;   };intmain(){   intarr[3]={1,2,3};  ......
  • 2024.12.29-2 结构体的小应用
    例题,有两个学生,输入两个学生的信息,输入成绩高的学生信息。方法一:#include<stdio.h>#include<string.h>//定义结构体。放在mian()外,为全局变量的感觉structStudent//开头必须大写。{   intnum;   charname[32];   charsex;   intage;   ......