首页 > 代码库 > C语言--二维数组,字符串数组,多维数组

C语言--二维数组,字符串数组,多维数组

 


#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
//    int a[2][3]={
//        {1,2,3},
//        {4,5,6}
//    };
//    int a[2][3]={1,2,3,4,5,6};
//    //打印单个元素
//    printf("%d",a[1][1]);
//    //元素没赋全,默认为0
//    int b[2][3]={{1,2,3},{4}};
//    
//    
//    
//    //3行4列浮点型数据
//    float c[3][4]={
//        {2.5},
//        {3.3},
//        {2.1,4.8}
//    };
//    for (int i = 0; i<3; i++) {
//        for (int j = 0; j<4; j++) {
#pragma mark----------------------%g科学计数法,保留小数后面,去掉0后面的
//     //%g科学计数法,保留小数后面,去掉0后面的
//            printf("%g ",c[i][j]);
//        }
//        printf("\n");
//    }
    //定义一个三行四列的整数,随机范围0-30
//    int a[3][4]={0};
//    for (int i = 0; i<3; i++) {
//        for (int j = 0 ; j<4; j++) {
//            a[i][j]=arc4random()%(30+1);
//            printf("%2d ",a[i][j]);
//        }
//        printf("\n");
//    }
    //把行和列交换,放到一个新的数组
//    int b[4][3]={0};
//    for (int i =0; i<3; i++) {
//        for (int j = 0; j<4; j++) {
//            b[j][i]=a[i][j];
//        }
//    }
//    printf("\n");
//    for (int i = 0; i<4; i++) {
//        for (int j = 0; j<3; j++) {
//            printf("%-2d ",b[i][j]);
//        }
//        printf("\n");
//    }
    
    //找出最大元素,并输入行和列
//    int max = 0;
//    for (int i =0 ; i<3; i++) {
//        for (int j =0; j<4; j++) {
//            if (max<a[i][j]) {
//                max=a[i][j];
//            }
//        }
//    }
//    for (int i = 0; i<3; i++) {
//        for (int j = 0; j<4; j++) {
//            if (max==a[i][j]) {
//                printf("max=%d,i=%d,j=%d",max,i,j);
//            }
//        }
//    }
    
    
//    char str[6][20]={
//        "zuoyoudong",
//        "fanghao",
//        "yaozhaodi",
//        "dengyongjun",
//        "makeyu",
//        "yangzhigang"
//    };
    //操作字符串
    //打印单个字符串
    //printf("%s",str[第一维下标])
    //打印字符串数组中所有字符串
//    long maxLength = 0;
//    for (int i = 0; i<6; i++) {
//        printf("%s ",str[i]);
//      printf("%ld",strlen(str[i]));//求长度
//      printf("%s",strcpy(str[i], "zhangsan"));//赋值
//      printf("%s",strcat(str[i], "bushiwoge"));//拼接
//      printf("%d",strcmp(str[i], "zuoyoudong"));//比较
//        if (maxLength < strlen(str[i])) {
//            maxLength = strlen(str[i]);
//        }
//    }
#pragma mark----------对字符串操作,对字符操作
    //对字符串操作,
    //第一,打印
    //第二,求长度
    //第三,赋值
    //第四,拼接
    //第五,比较
    //第六,排序(冒泡)
    
    
    //对字符操作
    //第一,赋值
    //第二,取值
    //需要数组名,加双下标
    
//    printf("\n%c",str[0][6]);
    
    //数组是一个容器
//    printf("\n");
//    for (int i = 0; i<6-1; i++) {
//        for (int j = 0; j<6-1-i; j++) {
//            if (strcmp(str[j], str[j+1])>0) {//如果第j个字符串大于第j+1个字符串
//                char temp[20] ={0};//定义一个临时的字符串,以便交换值
//                strcpy(temp, str[j]);
//                strcpy(str[j],str[j+1]);
//                strcpy(str[j+1], temp);
//            }
//        }
//    }
//    printf("\n");
//    for (int i = 0; i<6; i++) {
////        printf("%s ",str[i]);
//        if (maxLength == strlen(str[i]) ) {
//            printf("最长的单词是%s,长度是%lu   ",str[i],maxLength);
//        }
//    }
    
    
    
    
    
    
    
    //1.将一个二维数组的行和列交换,放到一个新的数组中去
//    int a[2][3]={
//        {1,5,9},
//        {3,2,8}
//    };
//    int b[3][2]={0};
//    for (int i = 0; i<2; i++) {
//        for (int j = 0; j<3; j++) {
//            b[j][i]=a[i][j];
//        }
//    }
//    for (int i = 0; i<3; i++) {
//        for ( int j = 0; j<2; j++) {
//            printf("%d ",b[i][j]);
//        }
//        printf("\n");
//    }
    //2.有一个三行四列的二维数组,找出其中的最大值并写出所在行和列
//    int a[3][4]={
//        {7,4,3,8},
//        {2,12,18,6},
//        {21,33,50,25},
//    };
//    int max = 0;
//    for (int i = 0; i<3; i++) {
//        for (int j = 0; j<4; j++) {
//            if (max<a[i][j]) {
//                max=a[i][j];
//            }
//        }
//    }
//    for (int i = 0; i<3; i++) {
//        for (int j = 0; j<4; j++) {
//            if (max==a[i][j]) {
//                printf("最大值是%d,所在行是%d和列是%d",max,i,j);
//            }
//        }
//    }
    //3.输入三个单词,查找并输出最长的单词
//    printf("请输入三个单词:");
//    char a[3][10]={
//        "zuo",
//        "you",
//        "dong"
//    };
    //输入三个字符串
//    char a[3][20]={0};
//    for (int i = 0; i<3; i++) {
//         scanf("%s",a[i]);
//    }
////    printf("%s",a[0]);
//    long maxLength = 0;
//    for (int i =0; i<3; i++) {
//        if (maxLength<strlen(a[i])) {
//            maxLength=strlen(a[i]);
//        }
//    }
//    for (int i = 0; i<3; i++) {
//        if (maxLength==strlen(a[i])) {
////            printf("%s",a[i]);
//            printf("%ld %s",maxLength,a[i]);
//        }
//    }
    
    //有10个姓名,按从小到大排列出来
//    char str[10][20]={
//        "zhangsan",
//        "lisi",
//        "wangerma",
//        "cuiyayun",
//        "yunjie",
//        "fanghao",
//        "zuoyoudong",
//        "liuping",
//        "zuoyouwei",
//        "liuhui"
//    };
//    char temp[20]={0};
//    for (int i = 0; i<10-1; i++) {
//        for (int j = 0; j<10-1-i; j++) {
//            if (strcmp(str[j], str[j+1])>0) {
//                strcpy(temp, str[j]);
//                strcpy(str[j], str[j+1]);
//                strcpy(str[j+1], temp);
//            }
//        }
//    }
//    for (int i = 0; i<10; i++) {
//        printf("%s ",str[i]);
//    }
    //把字符变成全大写,AC码大写A65,a97,减去32
    
    
    return 0;
}