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;
}

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

时间: 2024-12-25 22:30:10

C语言--二维数组,字符串数组,多维数组的相关文章

JSon_零基础_007_将JSon格式的&quot;数组&quot;字符串转换为Java对象&quot;数组&quot;

将JSon格式的"数组"字符串转换为Java对象"数组". 应用此技术从一个json对象字符串格式中得到一个java对应的对象. JSONObject是一个“name.values”集合, 通过get(key)方法取得key对应的value部分(字符串). 通过getJSONObject(key)可以取得一个JSONObject对象. 通过getJSONArray(key)可以得到一个JSONArray对象. 导入需要的jar包: package com.west.

C语言二维数组字符串的赋值

今天用到了二维数组作为参数传递的程序,通过网上搜索,针对自己遇到的问题做个整理. 1.在被调用函数的形参数组定义可以省略第一维的大小,第二维不可省略,如下: void fun(int a[5][20]); //合法 void fun(int a[][20]); //合法 void fun(int a[5][]); //不合法 void fun(int a[][]); //不合法 将二维数组作为形参时,第一维大小可以省略,第二维不可省略,这是有编译器原理限制的,在内存中按数组排列规则存放(按行存放

C语言二维数组作业

一.PTA实验作业 题目1:7-3 出生年 1. 本题PTA提交列表 2. 设计思路 1.声明一个函数different()用来计算一个年份的不同数字个数 2.定义y(y是来计算符合要求的年份的量),n(n为题目要求的不同数字个数),x(x用来存放起始年份),flag(flag是用来表示每个y值中的不同数字个数的量) 3.输入起始年份y和题目要求的n 4.x=y(存放起始年份) 5.do {flag计算y中不同数字个数:如果flag=n,符合题意,输出相应结果,并结束循环:如果不符合,y自增一}

二维数组 字符串数组

字符串数组元素访问:? 1.访问某个字符串:数组名[第?一维下标]? 2.访问某个字符 :数组名[第?一维下标][第?二维下标] 3.多维数组占?用内存 = 元素个数 乘以 单个元素所占空间 创建?一个字符串数组(内容是你周围?一圈?人的姓名),对字符串 (英?文)从?小到?大排序. char name[3][20] = {"chexianpeng" , "liuhuaixuan" , "liyunxiao"}; for (int j = 0;

8.31 二维数组 字符串和指针

指针+1移动了相当于所指向类型的大小的字节 int *s1[100] 移动了4个字节 int (*s2)[100] 移动了400个字节 char *s3 移动了1 个字节 int *s4 移动了4个字节 ***p2如何理解? int *p0 = &i *p0  = i int **p1 = &p0 **p1 = i int ***p2 = &p1 ***p2 = i *p2 = p1的值 **p2 = p0的值 ***p2 = i的值 所以***p2就是p0的值        而p

C语言二维数组作为函数的参数

前言:今天在实现装配线调度程序时候,用到了二维数组,并将其作为函数的参数.在写程序的时候,遇到一些问题,即二维数组做函数的参数应该如何正确表示.我写程序的错误如下程序所示: #include <cstdio> void print(int *a[3]) { printf("%d\n",a[0][0]); } int main() { int a[2][3] = {1,2,3,4,5,6}; print(a); return 0; } 编译程序时候,在第10行提示错误信息:|

C语言 二维数组与指针笔记

今天分析了C语言二维数组和指针的基本理解,感觉有点懵...代码记录一下,如果有大神临幸发现哪里有误,欢迎指正~~~ #include <stdio.h> #include <stdlib.h> #include <string.h> //void func(int p[][]) //这样写等同于void func(int **p) p++移动了四个字节,(*p)++移动了四个字节,不符合二维数组规律 //{ //} //列优先输出的函数(即竖着输出) void func

c语言二维数组传递

c语言二维数组传递,目前我总结三种方法,以及纠正一个不能使用的方法 /********************************* * 方法1: 第一维的长度可以不指定 * * 但必须指定第二维的长度 * *********************************/ void fun(int a[][3], int n, int m) { int i, j; for (i = 0; i < n; i++) { for (j = 0; j < m; j++) printf(&quo

14-黑马程序员------C 语言学习笔记--- C语言二维数组

黑马程序员------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 二 二维数组 01 二维数组的定义: 类型标识符 数组名[常量表达式][常量表达式]; 如:int a[3][4]; 表示定义了一个3行4列的整型二维数组a,含有12个数组元素. 02 二维数组的引用: 数组名[下标][下标]