美文网首页
2016.9.29 C语言课堂笔记--(循环,数组)

2016.9.29 C语言课堂笔记--(循环,数组)

作者: I踏雪寻梅 | 来源:发表于2016-10-09 19:18 被阅读0次

    C语言预课课堂笔记

    循环流程控制

    1. while循环
    while(条件
    {
        语句体;
    }
    
    • 分析:先判断条件是否成立,成立就执行while{}里面的语句,再回过头去判断条件成立与否.......

    • while注意点:

    while(1)
    {

    }

    快速入门:

          int i=1;
         int sum=0;
          while(i<=100)
          {
              sum=sum+i;
              i=i+1;
          }
          printf("sum=%d\n",sum);
    
    

    练习:

    1. 计算1~100所有偶数和(while、if)
        int a,l=0;
        scanf("%d",&a);
        while((a/10)!=0)
        {   
            l++;
        }
        printf("%d\n",l);
    

    1X1=1

    1X2=2 2X2=4

    1X3=3 2X3=6 3X3=9

    ….

    1X9=9 2X9=18 3X9=27…..9X9=81

    #include "stdio.h"
    int main()
    {
        int i,j;
        for (i=1;i<=9;i++)
        {
            for (j=1;j<=i;j++)
            {
                printf("%d*%d=%02d ",i,j,i*j);
                if (i==j)
                    printf("\n");
            }
        }
    }
    
    1. do—while循环

    do
    {
    语句体;
    }while(条件);```
    分析:先执行语句体,再去判断条件,条件成立,继续执行,直到条件不成立.....

    do-while注意点:
    1>实现死循环
    do
    {

    }while(1);

    1. for循环
      for(表达式1;表达式2;表达式4)
      {
      语句3;
      }
    • 分析:

      • 首先执行表达式1,表达1有且只执行一次
      • 判断表达式2是否成立,如果成立,就执行for{}里面的语句
      • for{}里面的语句都执行完成之后,再执行表达式4
      • 再执行上步骤2,3
    • for循环的注意点:

      • 表达式1,表达式2,表达式3都可以省略,但是分号不能省略;
      • 当表达式2省略时,for循环就相当于一个死循环

    快速入门:

           int i,sum=0;
           for(i=1;i<=100;i++)
           {
               sum=sum+i;
           }
           printf("sum=%d\n",sum);
    

    1>计算1~100奇数和,使用for循环实现

    #include "stdio.h"
    int main()
    {
        int i,j=0;
        for (i=1;i<=100;i++)
        {
            if(i%2!=0)
                j+=i;
        }
        printf("%d\n",j);
    }
    

    循环流程控制注意点

    1. 三个循环可以相互嵌套
    2. 在使用死循环尽量用while(1)
    3. 掌握while和for,理解do-while的用法
    4. 嵌套最好不要超过3层

    break和continue的用法:

    • break使用场合:switch,for , do-while,while

    • continue使用的场合:for,do-while ,while

    快速入门:

           int i=1,sum=0;
           while(i<=100)
           {   
               if(i==10)
               {
                  break;
              }
              sum+=i;
              i++;
          }
          printf("sum=%d\n",sum);
    

    分析:

    • break是跳出整个循环
    • break只能跳出一层循环
    • 当碰到break语句时,break下面的语句至循环的}里面剩下的语句就都不会被执行
    • for里面表达式4不会被执行

    continue快速入门

           int i=1,sum=0;
           for(;i<=100;i++)
           {
              if(i%10==3)
              {
                  continue;
              }   
              sum+=i;
          }   
          printf("sum=%d\n",sum);
    

    由上分析:

    1. continue是跳出本层循环中的一次循环,继续执行下面的循环
    2. 碰到continue时,continue下面的语句直到本层循环}里面的语句不会被执行
    3. for表达式4会继续执行
    1. 数组

    11.1. 数组的定义

    int arr[10];

    11.2. 数组的初始化

    int arr[5]={1,2,3};
    int arr[5]={[3]=1,[4]=2};
    int arr[]={1,2,3};
    

    11.3. 数组定义和初始化的注意点

    • []里面的数必须要是常量
    • 数组元素是从下标0开始
    • 不允许初始这么一个数组int arr[]={};int arr[];
    • 元素个数不能大于数组大小
    • 数组元素是变量
    • 重要:数组不能定义完再进行整体赋值,以下写法非法
    int arr[5];
    arr[5]={1,2,3,4,5};
    

    4>数组元素的访问
    数组名[访问下标];0<=下标范围<数组大小

    • 定义一个整型数组,求出这个数组当中的最大值和最小值,输出最大值和最小值,
      思想:遍历比较

    晚上作业

            *
           ***
          *****
         *******
          *****
           ***
            *
    
    int main()
    {
        int line,num,space,s;
        scanf("%d",&s);
        for (line=1;line<=s;line++)
        {
            if(line<=(s+1)/2)
            {
                for (space=1;space<=(s+1)/2-line;space++)
                {
                    printf(" ");
                }
                for (num=1;num<=2*line-1;num++)
                {
                    printf("*");
                }
                printf("\n");
            }
            if(line>(s+1)/2)
            {
                for (space=(s+1)/2;space<=line-1;space++)
                {
                    printf(" ");
                }
                for (num=1;num<=2*((s+1)-line)-1;num++)
                {
                    printf("*");
                }
                printf("\n");
            }
        }
        return 0;
    /*  int a,l=0;
        scanf("%d",&a);
        while((a/10)!=0)
        {   
            l++;
        }
        printf("%d\n",l);*/
    }```
    
        * 
       ***
      *****
     *******
    
       ```int i,j,k;
        for (i=1;i<9;i++)
        {
            for (k=1;k<9-i;k++)
            {
                printf(" ");
            }
            for (j=1;j<=2*i-1;j++)
            {
                printf("*");
            }
            printf("\n");
        }
        return 0;
    
    1. 输入一个数,颠倒这个数,将其输出,比如
      123456====》654321;
    2. 判断输入的一个整数是否是回文数
      回文数:12321:对称的数
    #include "stdio.h"
    int main()
    {
        int i,j,a;
        scanf("%d",&a);
        i=a;
        while(a)
        {
            j=j*10+a%10;
            a=a/10;
    
        }
        printf("%d",j);
        if(j==i)
            printf("是回文");
        else
            printf("不是回文");
    }
    
    1. 将一个整数数组里面的数左右颠倒,比如:
      int arr[5]={1,2,3,4,5,6};

    int arr[5]={6,5,4,3,2,1};
    5>复习

    //求100~200之间所有的素数

    结果:

    (1)i能整除2~i-1某一个数,跳出内层循环

    (2)i不能整除2~i-1任何一个数,

    #include "stdio.h"
    int main()
    {
        int i,j;
        for (i=100;i<200;i++)
        {
            for (j=2;j<i;j++)
            {
                if(i%j==0)
                    break;
            }
        
        if (j<i)
            printf("%d不是素数\n",i);
        if (j==i)
            printf("%d是素数\n",i);
        }
    }
    

    //输入两个数,输入一个运算符,计算结果。

    #include "stdio.h"
    int main()
    {
        int i,j;
        for (i=100;i<200;i++)
        {
            for (j=2;j<i;j++)
            {
                if(i%j==0)
                    break;
            }
        
        if (j<i)
            printf("%d不是素数\n",i);
        if (j==i)
            printf("%d是素数\n",i);
        }
    }
    

    //定义一个数组,将其中的数字前后互换

    #include "stdio.h"
    int main()
    {
        int a[100],i,j;
        int t,temp;
        scanf("%d",&t);
        getchar();
        for(i=0;i<t;i++)
        {
            scanf("%d",&a[i]);
        //  scanf("%d%d%d%d%d",&a[0],&a[1],&a[2],&a[3],&a[4]);
            getchar();
        }
        for(j=0;j<t;j++)
        {
            printf("%d",a[j]);
        }
        printf("\n");
        for(i=0;i<t/2;i++)
        {
        //  for(j=t-i;j>t/2;j--)
        //  {
                temp=a[t-i-1];
                a[t-i-1]=a[i];
                a[i]=temp;
        //  }
        }
        for(j=0;j<t;j++)
        {
            printf("%d",a[j]);
        }
    
    }
    

    相关文章

      网友评论

          本文标题:2016.9.29 C语言课堂笔记--(循环,数组)

          本文链接:https://www.haomeiwen.com/subject/sscmyttx.html