-----二维数组
->在数组定义当中,行数和列数需要用常量定义
->在定义的时候如果没有数值进行填充,则补零
->第一个数是行,第二个数是列
->行可以不写,但必须定义列

        int array [4][3] = {1,2,3,4,5,6,7,8,9,0,1,2};int array1[4][3] = {{11,12,13},{14,15,16},{17,18,19},{20}};printf("%d",array[0][0]);printf("\t%d",array1[3][0]);int a = 0 ;int b = 0 ;array[a][b] = 0;printf("\t%d",array[0][0]);int array[][4] = {1,2,3,4,5,6,7,8,9};int array[][4] = {1,2,3,4,5,6,7,8,9};printf("%lu",sizeof(array));int array[][4] = {1,2,3,4,5,6,7,8,9};// printf("%lu",sizeof(array));for (int i = 0; i < 3; i ++) {for (int j = 0; j < 4; j++) {printf("%d ",array[i][j]);}printf("\n");}

View Code

->所占用的内存空间
        int array[][4] = {1,2,3,4,5,6,7,8,9};printf("%lu",sizeof(array));int array[][4] = {1,2,3,4,5,6,7,8,9};printf("%lu",sizeof(array));

->二维数组打印的话需要两层循环的配合,第一层代表行,第二层代表列
        int array[4][5];for (int i = 0; i < 4; i ++) {for (int j = 0; j < 5; j ++) {array[i][j] = arc4random() % 101;printf("%d\t",array[i][j]);}printf("\n");}

->数组求和练习

        int sum = 0;for (int i = 0; i < 4; i++) {sum = sum + array[0][i];}printf("\n第0行总和:%d",sum);int sum1 = 0    ;for (int i = 0; i < 3; i ++) {for (int j = 0; j < 4; j++) {sum1 =  sum1 + array[i][j];}printf("\n第%d行的总和:%d",i ,sum1);sum1 = 0;}printf("\n");int sum2 = 0;for (int i = 0; i < 4; i++) {for (int j = 0; j < 3; j++) {sum2 = sum2 + array[j][i];//谁变化的快就放到内层循环
                }printf("\n第%d列的总和:%d",i,sum2);sum2 = 0;}

View Code

——字符串数组(字符数组)
->存储多个字符串
->char string[i][j] 可以保存i个字符串,每个字符串不能大于j-1个
第一位度表示可以放几个字符串,第二维度每个字符串表示最大长度-1;
->可以用一个下标访问,访问的是整个字符串
->两个下标访问的是字符
->不能直接替换
->得用strcpy
        char string[3][10] = {"maoyuanbo","maomao","hahahaha"};printf("%c",string[0][1]);printf("\n%s",string[1]);char string[3][10] = {"iphone","android","winphone"};printf("%c",string[0][1]);printf("\n%s",string[0]);strcpy(string[0], "nokia");printf("\n%s",string[0]);

>冒泡排序

 1         char string[5][20] = {0};
 2         for (int i = 0; i < 5; i++) {
 3             scanf("%s",string[i]);
 4         }
 5
 6         for (int i = 0; i < 4; i++) {
 7             for (int j = 0; j < 4 - i; j++) {
 8                 if (strcmp(string[j], string[j+1]) > 0) {
 9                     char name[20] = {0};
10                     strcpy(name, string[j]);
11                     strcpy(string[j], string[j+1]);
12                     strcpy(string[j+1], name);
13                 }
14             }
15         }
16         for (int i = 0; i < 5; i++) {
17             printf("\n%s",string[i]);
18         }
19     

View Code

->选择排序

 1         char string[5][20] = {0};
 2         int minindex = 0;//设最小值为第一个数
 3         for (int i = 0; i < 5; i++) {
 4             scanf("%s",string[i]);
 5         }
 6         for (int i = 0; i < 4; i++) {
 7             for (int j = i + 1; j < 5; j++) {
 8                 if (strcmp(string[minindex], string[j]) > 0) {
 9                     minindex = j;
10                 }
11
12             }
13             if (minindex != i) {
14                 char name[20] = {0};
15                 strcpy(name, string[i]);
16                 strcpy(string[i], string[minindex]);
17                 strcpy(string[minindex], name);
18             }
19         }
20         for (int i = 0; i < 5; i++) {
21             printf("\n%s",string[i]);
22         }
23     

View Code

->求最大字符串长度

 1         char string[5][20] = {0};
 2         unsigned long maxworld = 0;//定义一个最大的字符串长度
 3         for (int i = 0; i < 5; i++) {
 4             scanf("%s",string[i]);
 5         }
 6         //求出最长长度
 7         for (int i = 0; i < 5; i++) {
 8             if (strlen(string[i]) > maxworld) {
 9                 maxworld =  strlen(string[i]);
10             }
11         }
12         printf("最长长度为:%ld\n",maxworld);
13         for (int i = 0; i < 5; i++) {
14             if (strlen(string[i]) == maxworld) {
15                 printf("%s\t",string[i]);
16             }
17         }
18
19
20         char array[5][20] = {0};
21         unsigned long maxworld = 0;
22         for (int i = 0; i < 5; i++) {
23             scanf("%s",array[i]);
24         }
25         for (int i = 0; i < 5; i++) {
26             if (strlen(array[i]) > maxworld) {
27                 maxworld = strlen(array[i]);
28             }
29         }
30         printf("最长长度:%ld\n",maxworld);
31         for (int i = 0; i < 5; i ++) {
32             if (strlen(array[i]) == maxworld) {
33                 printf("%s  ",array[i]);
34             }
35         }
36         

View Code

——多维数组
    int a[2][2][2] = {0};int sum = 0,sum1 = 0;for (int i = 0; i < 2; i ++) {for (int j = 0; j < 2; j ++) {for (int k = 0; k < 2; k++) {a[i][j][k] = arc4random() % 11;printf("%d\t",a[i][j][k]);sum1 =a[i][j][k] +sum1;sum = a[i][j][k] +sum;}printf("每一行总和:%d",sum1);sum1 = 0;printf("\n");}printf("每一层总和:%d",sum);sum = 0;printf("\n\n");}

转载于:https://www.cnblogs.com/IT-jqm/p/C_testDay03.html

C-二维数组,多维数组相关推荐

  1. Numpy 生成 Bool型数组、一维转多维数组reshape、多维转一维数组、替换数组元素、提取数组元素、数组交集、差集、过滤数组元素、二维数组反转行、交换数组维度

    1. 创建一个 [3,5] 所有元素为 True 的数组 In [162]: b = np.ones((3,5), dtype=bool)In [163]: b Out[163]: array([[ ...

  2. C++二维数组名与数组指针的思考

    二维数组名和数组指针可以当做一个东西用,但两者之间的含义是不同的. 二维数组名是一个指向数组中所有元素的指针,而数组指针是一个行指针.体现在sizeof()上的不同. #include <ios ...

  3. HDU2642(二维的树状数组)

    二维的树状数组,我记得是模版!^ _ ^ 题意很清楚:就是这部分的原理:sum(x1,y1)+sum(x2-1,y2-1)-sum(x1,y2-1)-sum(x2-1,y1);其实可以和概率论中的一个 ...

  4. java 3维_java 二维/三维/多维数组

    如图,声明一个数组,引用存在栈中,new出来的对象存在堆中. 我把多维数组理解为数组中嵌套另一个数组. 下方代码为三维数组,如果是动态赋值,只需要声明多维数组的大小(new int[3][][]),需 ...

  5. 编程之美2.15 二维数组最大子数组的和(数组下标从(1,1)开始)

          首先,我们看到这篇文章的题目,我们就会想到之前的那个题目 -- 连续子数组最大和问题.这个问题无疑就是把原问题扩展到二维的情况.       想起来这个问题也不是很难,我们可以求解一维矩阵 ...

  6. python将二维数组转换为一维数组_python的set处理二维数组转一维数组的方法示例...

    for splitValue in set(dataset[:, featureIndex].tolist()): 首先set是一个无序,无重复的数据结构,所以很多时候使用它来进行去重:但是set接收 ...

  7. 间接通过new 来申请一个二维的堆内存数组

    我们知道无法直接通过new 来申请一个二维的堆内存数组,于是有人想出了这样一个办法:创建一个一维堆内存指针数组,即每个数组元素是一个指针,然后用new 给各个指针分配一个一维的堆内存数组,那么最后表示 ...

  8. javascript二维数组转置_VBA数组拆分及维数的转换

    不以物喜,不以己悲,看庭前花开花落,宠辱不惊.淡然,是人生的最高境界,是对人生的态度,是一种风度,一种力量,一种原则.淡若清风,是现在需要的态度.静下心,为后疫情时代做知识的储备,后疫情时代将演绎一场 ...

  9. 二维数组,锯齿数组和集合 C# 一维数组、二维数组(矩形数组)、交错数组(锯齿数组)的使用 C# 数组、多维数组(矩形数组)、锯齿数组(交叉数组)...

    二维数组,锯齿数组和集合 一.二维数组 二维数组: 一维数组----豆角 二维数组----表格 定义: 1.一维数组: 数据类型[] 数组变量名 = new 数据类型[数组长度]; 数据类型[] 数组 ...

  10. php 二位数组随机,PHP多维数组 php打乱数组二维数组多维数组的简单实例

    php中的shuffle函数只能打乱一维数组,有什么办法快速便捷的打乱多维数组?手册上提供了 上面这个是针对二维数组的! 下面针对多维数组的乱序方法?尽可能的方便快速: 以下函数也是出自php手册,可 ...

最新文章

  1. iOS下JS与OC互相调用(六)--WKWebView + WebViewJavascriptBridge
  2. golang 二维切片
  3. 【深度学习】2021年深度学习哪些方向比较新颖,处于上升期或者朝阳阶段,没那么饱和,比较有研究潜力?...
  4. C语言简单题-求整数段和
  5. 如何设置(样式渐变)transition
  6. auth java_java – 使用auth的httpget请求
  7. C语言 判断一个数是否为素数
  8. WinSock Socket 池
  9. iOS UIView异步绘制实现圆角的方案
  10. vc++无进程式线程插入穿墙技术实现
  11. 人脸识别demo使用教程
  12. android框架揭秘!连续四年百度Android岗必问面试题!实战篇
  13. python 断言方法_Python3断言
  14. Windows系统下查询本机IP地址和MAC地址
  15. ibm服务器硬盘raid检测,IBM 3650 服务器做的RAID5,两块硬盘亮黄灯,但是系统正常,更换...
  16. 微信团队分享:微信支付代码重构带来的移动端软件架构上的思考
  17. 问题 M: 【字符串】贝贝的数学课
  18. 【技术分享】戴尔工作站安装Win10+Ubuntu20.04双系统教程与避坑指南
  19. iOS 调试:DerekSelander【 LLDB aliases/regexes and Python scripts to aid in your debugging sessions】
  20. 思维题 URAL 1409 Two Gangsters

热门文章

  1. 闲谈嵌入式的复杂性2
  2. python卸载pip重新安装_pip无法正常使用卸载并重新安装
  3. android 平板安装程序开发者,android – 限制平板电脑中的应用安装
  4. 高校复试计算机英语文献翻译,专业文献英语翻译复试.pdf
  5. 傅里叶变换拉普拉斯变换的物理解释及区别
  6. MySQL性能优化速记
  7. 原生js实现发短信~chat
  8. Centos6.5 安装配置docker
  9. 带你开发类似 Pokemon Go 的 AR 游戏
  10. 制作生成静态页面的新闻系统