c++教学(8)while循环

  • Post author:
  • Post category:其他




  • 计数器 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;
    }


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