• c语言之循环


    所谓的循环就是某些代码会被重复执行

    循环的分类: for      while        do......while

    for

    1.格式  for (1; 2; 3)

            语句a;   执行流程 1----2---语句a-----3----2----。。。。。 3执行完一次代表循环一次的结束

    2.最简单的for 用法

          for(i = 1; i<=10; i++)

               sum = sum + i;

    3. if 与 for嵌套

    #include <stdio.h>
    
    int main (void)
    
    {
    
     int i, sum=0;
    
    for (i=3; i<=10; i++)
    
    {
    
      if (i%3 == 0) //i 能被3整除 
    
      sum = sum +i;
    
      printf("sum = %d
    ",  sum);
    
     } 
    
    return 0;
    
    }
    

    ------------实验结果-------------------------------//for 语句的范围和if 的范围只能控制一句,所以printf的执行次数与for循环有关,与if 无关

    sum = 3

    sum = 3

    sum = 3

    sum = 9

    sum = 9

    sum = 9

    sum = 18

    sum = 18

    4.多个 for 循环的嵌套问题

      1) for (1; 2; 3)

            for (4; 5; 6)

                 a;

                 b;

    1----2-(成立)-----4------5--(成立)---a------6------5--(成立)----a---......5---(不成立)----3-----2---(成立)---4---a-----6---........----3----2---(不成立)-----b

     即 5不成立才会执行3,2不成立才会执行b,整体算两个语句

    2) for (1; 2; 3)

           for (4; 5; 6)

                { a;

                  b;

                  }   整体算一个语句

    3) for (1; 2; 3)

       { a;

         b;

           for (4; 5; 6)

                 c;

          }  整体算一个语句

    4) for (1; 2; 3)

          for (7; 8; 9)

            { a;

               b;

               for (4; 5; 6)

                  c;   

             }   整体算一个语句

      

    while循环

    1.执行顺序

     格式: while (表达式)

                   语句;

    表达式----语句----表达式-------语句。。。。。

    2.与for的比较

     i=0;                          

    while (i < 101)

    {

     sum = sum + 1;

      ++i; 

      }           //for 和while 可以相互转换,相比较for 逻辑性更强,更不易出错

    3.举例(判断回文数的程序)

     1 # include <stdio.h>
     2 
     3 int main (void)
     4 {
     5     int val;
     6     int m;
     7     int sum = 0;
     8 
     9    printf("请输入您要判断的数字: ");
    10    scanf("%d", &val);
    11 
    12    m = val;
    13    while (m)
    14   {
    15     sum = sum *10 + m%10;
    16     m /= 10;
    17     }
    18     
    19     if (sum == val )
    20     printf("yes!
    ");
    21      else
    22      printf("no!
    ");
    23 
    24     return 0;
    25  }

    试数过程

    1> m=123成立

        sum= 0*10+123%10=3

         m= m/10=12

     2>m=12成立

        sum= 3*10+12%10=32

         m= m/10=1

    3>m=1成立

        sum= 32*10+1%10=321

         m= 1/10=0

    4>m=0 不成立

    最终 sum=321 

    4.应用场合

    do.....while   主要是用于人机交互

    格式: do

    {

       ........

      } while (表达式); 分号不能省

     while 和 for的表达式为假时,循环语句一次都不执行,而 do....while 里的语句至少执行一次,为先执行后判断真假。

    例子:在 一元二次方程中的应用 (人机交互,用户输入决定是否结束)

     1  # include <stdio.h>
     2 
     3  int main (void)
     4  {
     5      double  a, b, c;
     6      double delta;
     7      double x1, x2;
     8      char c;
     9 
    10   do
    11   {
    12       printf("请输入一元二次方程的三个系数:
    ");
    13       printf("a = ");
    14       scanf("%lf", &a);
    15       
    16       printf("b = ");
    17       scanf("%lf", &b);
    18 
    19       printf("c = ");
    20       scanf("%lf", &c);
    21 
    22       delta = b*b - 4*a*c;
    23 
    24        if (delta > 0)
    25       {
    26         x1 = (-b + sqrt(delta)) / (2*a);
    27         x2 = (-b - sqrt(delta)) / (2*a);
    28     
    29         printf ("有两个实数解,x1 = %lf, x2 = %lf
    ",  x1,  x2);
    30  
    31       }
    32 
    33    
    34         else if (delta == 0)
    35       {
    36           x1 = x2 = - b / (2*a);
    37 
    38          printf ("有唯一实数解,x1 = x2 = %lf
    ",  x1);
    39  
    40         }
    41  
    42          else
    43        {
    44            printf("无实数解!
    ");
    45         }
    46      
    47        printf("您想继续吗 (Y/N): ");
    48        scanf(" %c", &ch );   //%c前面必须要有一个空格,原因比较复杂
    49      } while ('y' == ch || 'Y' == ch );   //单个字符加单引号
    50   
    51     return 0; 
    52  }

                

  • 相关阅读:
    统计知识选讲(二)——主成分分析(PCA)的推导和应用
    统计知识选讲(一)——主成分分析(PCA)的思想
    数模学习笔记(八)——遗传算法
    数模学习笔记(六)——灰色系统
    数模学习笔记(五)——BP神经网络
    数模学习笔记(四)——AHP
    数模学习笔记(三)
    数模学习笔记(二)
    推荐决策 对比user-based 和item-based推荐算法
    Mysql事件学习
  • 原文地址:https://www.cnblogs.com/wanliqingkong/p/3751429.html
Copyright © 2020-2023  润新知