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;

}

}

原文地址:https://www.cnblogs.com/limicheng/p/3783402.html