zoukankan      html  css  js  c++  java
  • iOS学习笔记---C语言第五天

    二维数组   字符串数组   多维数组

    二维数组的定义

    类型  数组[常量表达式1][常量表达式2]={值1,值2...};

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

    #import <Foundation/Foundation.h>
    
    int main(int argc, const char * argv[])
    {
    
        float a[3][4] = {{2.5},{3.3},{2.1,4.8}};
        for (int i = 0;i<3 ;i++){
            for (int j = 0; j<4; j++) {
    //            printf("%.2f ",a[i][j]);//输出2.50 0.00 0.00 0.00 3.30 0.00 0.00 0.00 2.10 4.80 0.00 0.00
                printf("%g	",a[i][j]);//输出2.5 0 0 0 3.3 0 0 0 2.1 4.8 0 0
            }
            printf("
    ");
        }
        return 0;
    }
    #import <Foundation/Foundation.h>
    
    int main(int argc, const char * argv[])
    {
        int a[3][4] = {0},b[4][3];
        for (int i = 0; i<3; i++) {
            for (int j = 0; j<4; j++) {
                a[i][j] = arc4random()%31;
                printf("%d	",a[i][j]);
    
            }printf("
    ");
        }
        printf("
    ");
        for (int i = 0 ; i<4; i++) {
            for (int j = 0; j<3; j++) {
                b[i][j]=a[j][i];
                printf("%d	",b[i][j]);
            }printf("
    ");
        }
        return 0;
    }
    //输出:(数字随机)
    //2        1   10    19
    //21    10    26    23
    //18    26    14    18
    //
    //2        21    18
    //1        10    26
    //10    26    14
    //19    23    18
     1 //有一个3⾏行4列的⼆二维数组,要求编程找出最 ⼤大元素,并输出所在的⾏行和列。
     2 #import <Foundation/Foundation.h>
     3 
     4 int main(int argc, const char * argv[])
     5 {
     6     int a[3][4] = {0},max=0;
     7 //    int k,l;
     8     for (int i = 0; i<3; i++) {
     9         for (int j = 0; j<4; j++) {
    10             a[i][j] = arc4random()%21+20;
    11             printf("%d	",a[i][j]);
    12             if (max<a[i][j]) {
    13                 max=a[i][j];
    14 //                k=i;
    15 //                l=j;
    16             }
    17         }printf("
    ");
    18     }
    19     printf("%d ",max);
    20     for (int i = 0; i<3; i++) {
    21         for (int j = 0; j<4; j++) {
    22             if (a[i][j]==max) {
    23                 printf("第%d行,第%d列",i+1,j+1);
    24             }
    25         }
    26     }
    27     
    28 //    printf("%d %d %d",max,k+1,l+1);
    29     return 0;
    30    }

     二维数组定义时,可以不指定第一维的长度,但必须给定第二维:int a[][3]={1,2,3,4,5};

    元素个数不足,会自动补齐。

    二、字符串数组

    用于存放字符串的数组称为字符串数组      字符串:字符数组

    定义字符串数组

    char 数组名[常量表达式1][常量表达式2]={值1,值2...};

    char strings[3][10]={"iphone","android","win8"};

    字符串数组元素访问

    1.访问某个字符串   数组名[第一维下标]

    2.访问某个字符      数组名[第一维下标][第二维下标]

    //字符串排序
    #import <Foundation/Foundation.h>
    
    int main(int argc, const char * argv[])
    {
        char name[5][20]={"lidfgdfi","shdfgdg","shidfgren","zhfdggsr","lidrrgo"};
    
            for (int i = 0; i<4; i++) {
                for (int j=0; j<4-i; j++) {
                    if(strcmp(name[j], name[j+1])>0)
                    {char temp[20]={0};
                        strcpy(temp, name[j]);
                        strcpy(name[j], name[j+1]);
                        strcpy(name[j+1], temp);
                        
                        }
                }
            }
            for (int i=0; i<5; i++) {
            printf("%s
    ",name[i]);
        }
        
        return 0;
    }

     注意事项

    字符串数组实为字符型二维数组

    每个字符串长度不可超过第二维长度-1

    每个字符串用数组名加一维下标表示

    三、多维数组

    数组下标在2个或2个以上时,该数组为多维数组    int a[2][4][3]={0}; 表示整型的三维数组,2层4行3列,元素个数为2*4*3=24个

    三维数组的遍历

    for(int i = 0; i < 层数; i++){

    for(int j = 0; j < ⾏行数; j++){

    for(int k = 0; k < 列数; k++){

    a[ i ][ j ][ k ] = xxx;

    }

    }

  • 相关阅读:
    POJ 3126 Prime Path
    POJ 2429 GCD & LCM Inverse
    POJ 2395 Out of Hay
    【Codeforces 105D】 Bag of mice
    【POJ 3071】 Football
    【POJ 2096】 Collecting Bugs
    【CQOI 2009】 余数之和
    【Codeforces 258E】 Devu and Flowers
    【SDOI 2010】 古代猪文
    【BZOJ 2982】 combination
  • 原文地址:https://www.cnblogs.com/limicheng/p/3783402.html
Copyright © 2011-2022 走看看