zoukankan      html  css  js  c++  java
  • day3

    switch用法

    实例:电梯程序

     1 #include <stdio.h>
     2 int main(void)
     3 {
     4 int val;
     5 printf("请输入您要进入的楼层:");
     6 scanf("%d",&val);
     7 
     8 switch(val)
     9 {
    10 case 1:
    11 printf("1ceng");
    12 break;
    13 case 2:
    14 printf("2cengkai");
    15 break;
    16 case 3:
    17 printf("3cengkai");
    18 break;
    19 default:
    20 printf("meiyou ");
    21 break;
    22 }
    23 return 0;
    24 }

    break和continue

    break如果用于循环是用来终止循环

    break如果用于switch则是用于终止switch

    break不能直接用于if,除非if属于循环内部的一个子句

    #include <stdio.h>
    int main(void)
    {
    int i;
    
    /*&    switch(1)
    
    case 1:
    printf("haha
    ");
    break; //break可以直接用于switch
    */
    for(i = 0; i<=3; i++)
    {
    if(3>2)
    break;//break虽然是内部的语句,但breeak终止的确实外部的for循环
    printf("嘿嘿
    ");//永远不会输出
    }
    return 0;
    }

    break只能终止它最近的循环

     1 #include <stdio.h>
     2 int main(void)
     3 {
     4 int i,j;
     5 
     6 for(i = 0; i<3; ++i)
     7 {
     8 for(j=1;j<4;++j)
     9 break;//break只能终止塔最近的循环
    10 printf("嘿嘿
    ");
    11 }
    12 return 0;
    13 }

    在多层switch嵌套中,break只能终止它最近的switch

    例子:

     1 int x=1,y=0,a=0,b=0;
     2 switch (x)//第一个switch
     3 {
     4 case 1:
     5 switch (y)//第二个switch
     6 {
     7 case 0:
     8 a++;
     9 break;//终止的是第二个switch
    10 case 1:
    11 b++;
    12 break;
    13 }
    14 b=100;
    15 break;//终止的是第一个switch
    16 }
    17 printf("%d %d",a,b);

    最终输出结果: 1 ,100

     continue

      用于跳过本粗循环余下语句,转去判断是否需要执行下次循环

     1   for123
     3   {
     4 
     5   A;
     6 
     7   B;
     8 
     9   continue; //如果执行该语句,则执行完该语句后,会执行表达式,c和d都会被跳过去

    10
    11   C;
    12 
    13   D;
    14 
    15   }
    1 while(表达式)
    2 {
    3 A;
    4 B
    5 continue;//如果执行该语句,则执行完该语句后,会执行表达式,c和d都会被跳过去
    6 C;
    7 D;
    8 }

    实例:

     1 #include <stdio.h>
     2 int main(void)
     3 {
     4     int i;
     5     char ch;
     6     int j;
     7     scanf("%d",&i);
     8     printf("i=%d
    ",i);
     9     while ((ch=getchar()) !='
    ')
    10         continue;
    11     scanf("%d",&j);
    12     printf("j= %d
    ",j);
    13     return 0;
    14 }

    数组

      为什么需要数组

    •     为了解决大量同类型数据的储存和使用问题
    •     为了模拟现实世界

      数组的分类

      一维数组:为n个变量连续分配存储空间

           所有的变量数据类型必须相同

           所有变量所占的字节大小必须相等

        例子:  int a[5]

            一维数组中不代表数组中所有的元素,因为一维数组名代表数组的第一个元素的地址

        有关一维数组的操作:

    •       初始化:完全初始化  

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

              不完全初始化,未被初始化的元素自动为零

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

              不初始化,所有元素为垃圾值

                int a[5];

              清零

                int a[5]={0}

              错误写法: 

                int a[5];

                a[5]={1,2,3,4,5};   //错误

             只有在定义数组的同时才能整体赋值,其他情况下整体赋值是错误的

     

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

    a[5]=100; //error 因为没有a[5]这个元素,最大只有a[4]

     

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

    int b[5];

    如果要把a数组中的值全部赋值给b数组

    错误的写法:   b=a; //error

    正确的写法 :  for (i=0; i<5;i++)

             b[i]=a[i];

     1 #include <stdio.h>
     2 int main(void)
     3 {
     4     int a[5]={1,2,3,4,5}; //a是数组的名字,5表示数组元素的个数,并且这5个元素分别用a[0] a[1] a[2] a[3] a[4]
     5     int i;
     6     for (i=0;i<5;i++)
     7         printf("%d
    ",a[i]);
     8 
     9     return 0;
    10 }
     1 //将数组内的数字倒序
     2 #include <stdio.h>
     3 int main(void)
     4 {
     5     int a[7]={1,2,3,4,5,6,7};
     6     int i;
     7     int j;
     8     int t;
     9 
    10     i=0;
    11     j=6;
    12     while(i<j)
    13     {
    14         t=a[i];
    15         a[i]=a[j];
    16         a[j]=t;
    17         i++;
    18         j--;
    19 
    20     }
    21     for (i=0;i<7;i++)
    22         printf("%d
    ",a[i]);
    23     return 0;
    24 }

      二维数组

    int a[3][4];

    总共是12个元素,可以当做3行4列看待,这12个元素的名字依次是a[0][0] a[0][1] a[0][2] a[0][3]   

                                  a[1][0] a[1][1] a[1][2] a[1][3] 

                                  a[2][0] a[2][1] a[2][2] a[2][3] 

        a[i][j]表示第i+1行j+1列的元素

        int a[m][n];  该二维数组右下角的位置只能是a[m-1][n-1]

    初始化

      int a[3][4] ={1,2,3,4,5,6,7,8,9,10,11,12};

    int a[3][4]={

        {1,2,3,4},

        {5,6,7,8},

        {9,10,11,12}

    };

    输出二维数组

     1 #include <stdio.h>
     2 int main(void)
     3 {
     4     int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
     5     int i,j;
     6     for (i=0;i<3;i++)
     7     {
     8         for(j=0;j<4;j++)
     9             printf("%-5d",a[i][j]);//-5d,占5个字节对齐
    10         printf("
    ");
    11     }
    12 
    13     return 0;
    14 }

      多维数组

        不存在多维数组,因为内存是线性一维的,n维数组可以当做每个元素是n-1维数组的一维数组

      比如: int a[3][4]   该数组是含有3个元素的一维数组 ,只不过每个元素都可以在分成4个小元素

         int a[3][4][5]  该数组是含有三个元素的一维数组,只不过每个元素都是4行5列的二维数组

  • 相关阅读:
    山东第一届省赛1001 Phone Number(字典树)
    HD2222 Keywords Search(AC自动机入门题)
    POJ 1947Rebuilding Roads(树形DP + 01背包)
    zoj 3946 Highway Project(最短路 + 优先队列)
    HDU5672String(尺标法)
    HDU5671Matrix(矩阵行列交换)
    HDU5670Machine(抽象进制)
    用户体验评价
    团队冲刺第二阶段-6
    第十四周学习进度
  • 原文地址:https://www.cnblogs.com/8013-cmf/p/4624970.html
Copyright © 2011-2022 走看看