c++教学(8)while循环

文章介绍了while死循环的结构和使用,包括如何通过break语句退出循环,以及计数器在统计操作中的作用。同时,文章提供了几个编程题示例,如猜数字游戏、正整数计数、苹果分级和整数除法,展示了while循环和计数器在实际问题解决中的应用。
  • 计数器 while死循环 break
  • 第 13 课时知识精炼
    1. while 死循环
    • 2. 计数器

      while 死循环
      while(1){
      循环语句;
      }
      代码由两部分构成:
      1、while(1)
      2、循环语句
      计数器
      计数器在使用时需要初始化为 0


      一、 while 死循环
      1、
      while 死循环结构
      2、
      while 死循环一般形式
      while(1){
      循环语句
      }
      3、break 语句
      如果想要使停止 while 死循环,我们需要使用:
      break;循环跳出语句
    • 4、计数器

      当我们想要进行统计操作时,就需要一个特殊的变量---计数器,并且计数
      一般器需要赋初值为 0:
      int i = 0;
    • 5、死循环适用情况

    • while 死循环善于解决输入若干个数字的问题,当我们做题时发现题目中出
      现若干这样的字眼,或者在输入的时候需要输入很多数字,以某个条件作为结
      束标志,那么我们就可以选用 while 死循环来解决问题。

      while(1){
      输入语句
      if(表达式){
    • break;
      }

      循环语句;
      }

    • 第 14 课时知识精炼
      学习内容
      1. while(表达式)循环
      2. 累加器
      重点知识一
      while(表达式)循环
      while(表达式){
      循环语句;
      }
      代码有两部分:
      while(表达式)
      循环语句
      重点知识二
      累加器
      int sum = 0;
      累加器在使用时,一般初始化为 0
      一、  while(表达式)循环
      1、
      while(表达式)循环结构
      while(表达式)循环只有当括号中的表达式成立时,才会执行循环语句:
      2、 累加器
      当我们需要在循环中求某些数的和时,需要使用一个特殊的变量来存储每
      次数据累加的和,即计数器:
      int sum = 0;
      3、 while(1)死循环与 while(表达式)循环的区别
      while(1)死循环,使用 break 跳出循环,而 while(表达式)循环是根据表达
      式是否成立决定循环语句是否执行,如果表达式成立则执行循环语句,否则不
      执行。

    • 啊,哈哈,哈哈,哈 编程题来喽!
    • 猜数字
      时间限制:1秒        内存限制:128M
      题目描述
      同学聚会上,老师带大家玩起了猜数字的游戏。游戏规则如下:老师从1-100之间随机抽一个数字让大家猜,大家轮流猜数字,每次只能猜一个,猜错则输出错误,直到猜对为止,输出正确并结束游戏,本次游戏的正确数字为43。

      输入描述
      若干个数字,直到输入43停止输入。

      输出描述
      若干行错误,最后一行为正确

      样例
      输入
      5 10 20 43
      输出
      错误
      错误
      错误
      正确

    • public int GuessNumber1(int n)
      {
          //本质还是在找一个一个数字,二分法
          int low = 1;
          int high = n;
          while (low <= high) 
          {
              int mid = low + (high - low) / 2;
              int res = guess(mid);
              if (res == 0)
              {
                  return mid;
              }
              else if (res < 0) 
              {
                  high = mid - 1;
              }
              else
              {
                  low = mid + 1;
              }
          }
          return -1;
      }
      

    • “正义”的数字

      时间限制:1秒        内存限制:128M

      题目描述

      我们定义“正义的数字为大于数字零的数。现在输入若干个整数,最后一个数字为0,计算其中一共有多少个“正义的数字”。

      输入描述

      一行若干整数,最后一个为0。

      输出描述

      一行一个整数,表示输入的数据中正整数的个数。

      样例

      输入

      3 6 -3 2 0

      输出

      3
    • #include <iostream>
      using namespace std;
      
      int main() {
          int num, count = 0;
          cin >> num;
          while (num != 0) {
              if (num > 0) {
                  count++;
              }
              cin >> num;
          }
          cout << count << endl;
          return 0;
      }
      //首先,我们定义了一个整型变量 num 来接收输入的整数,以及一个计数器 count 来统计正义的数字的个数,初始化为0
      
      //然后,使用 while 循环来不断输入整数,直到输入数字0为止。在循环中,如果当前输入的数字大于0,则将 count 计数器加1
      
      //最后,输出 count 的值,即正义的数字的个数
      
      //注意,如果输入的第一个数字就是0,则不会进入循环,直接输出0即可
      

      苹果分级

      时间限制:1秒        内存限制:128M

      题目描述

      今年老王家的苹果丰收了,为了能卖个好价钱,老王把苹果按直径大小分等级出售。这么多苹果如何快速的分级,可愁坏了老王。现在请你编写一个程序来帮助老王模拟苹果分级的操作吧,要求一级果的直径大于等于70毫米,二级果的直径是69~60毫米,三级果的直径是59~50毫米,小于50毫米的算四级果。

      输入描述

      若干个不超过120的正整数,表示每个苹果的直径,当输入直径小于20时表示结束。

      输出描述

      输出有两行:

      第一行输出苹果总个数;

      第二行输出一级果、二级果、三级果、四级果的个数,中间用空格分隔,四级果后面无空格。

      样例

      输入

      67 34 85 58 32 54 59 60 55 42 51 0

      输出

      11
      1 2 5 3
    • #include<stdio.h>
       #include<math.h>
       #include<string.h>
       int main() {
        int n,i,a[100000],b=0,c=0,d=0,e=0;
        memset(a,0,100000*sizeof(char));
        for(i=0;;i++)  {   
      scanf("%d",&a[i]);   
      if(a[i]<20)    
      break;  
        a[i]='\0';
      }
        printf("%d\n",i);
        for(i=0;a[i]!='\0';i++){   
      if(a[i]>=70)
          b++;   
      else if(a[i]>=60)
          c++
      else if(a[i]>=50)
          d++;   else    e++; 
       } 
       printf("%d %d %d %d\n",b,c,d,e);
       return 0; 
      }//作者不想打解释了,手麻了,还请见谅

      变成0需要的次数

      时间限制:1秒        内存限制:128M

      题目描述

      如果 '/' 的左右两边的数字都是整数,则得到的结果为整数商,现在给定一个整数n,对n进行几次/2操作之后n会变成0?

      输入描述

      一个整数n(int范围内)

      输出描述

      n变成0需要的次数

    • 样例

      输入

      7

      输出

      3
  • #include<iostream>
     
    using namespace std;
     
    int main()
    {
    	int val1 = 0, val2 = 0, num=0;
    	cout << "Enter two number:" << endl;
    	cin >> val1 >> val2;
    	while (abs(val1-val2) != 1 && val1 != val2)
    	{
    		if (val1 < val2)
    		{	
    			++val1;
    			num = val1;	
    			cout << num << endl;
    		}
    		else
    		{
    			--val1;
    			num = val1;
    			cout << num << endl;
    		}	
    	}
    	return 0;
    }

    本次教学就结束了,谢谢大佬评论!

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值