[C语言]菜鸟的一些理解-数组2
来源:互联网 发布:北明软件怎么样 编辑:程序博客网 时间:2024/05/17 01:19
二维数组是一维数组的演变。
int a[3][4] ;// 3个可以存储4个int型元素的一维数组
double d[4][4]; //4个可以存储4个double型元素的一维数组
二维数组储存方式
m[0][0] m[0][1] m[0][2]
m[1][0] m[1][1] m[1][2]
m[2][0] m[2][1] m[2][2]
把二维数组看做教室的桌子,而学生看做所储存的元素(用学号表示一个学生)
行
列 0 1 2 3
0 1201 1208 1215 1222
1 1202 1209 1216 1223
2 1203 1210 1217 1224
3 1204 1211 1218 1225
4 1205 1212 1219 1226
5 1206 1213 1220 1227
6 1207 1214 1221 1228
把行看做排 列看做组
假如你要找 1210 首先你要知道他在几行几列.
二维数组的定义和赋值
其标准形式如下:
数据类型 数组名[一维容量][二维容量]
int a[3][3] ;//定义一个可以存储9个int型元素的二维数组
char c[2][5];//定义一个可以存储10个char型元素的二维数组
int a[3,3];//错误
注意:二维数组的容量 == 一维容量 * 二维容量
还有数组容量必须为常量。
二维数组的赋值
1.用花括号把数值分开。这样比较直观,有利于可读性,管理。
int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
2.跟一维数组一样的赋值方式,但是这样方式,不利于可读,管理
int a[3][3] = {1,2,3,4,5,6,7,8,9};
3.只部分的元素赋值。剩余的编译器会自动初始化为零。
int a[3][3] = {1,2,3,5};
int a[3][3] = {{1,2},{4},{7,8}};
二维数组的应用
1.二维数组的输入输出
2.查找二维数组中的最小的元素
3.使用两个数组实现矩阵转置输出。
4.在一个数组中实现矩阵转置输出。
多维数组
int a[2][3][6]; //定义一个可以存储36个int型的多维数组。
其定义和赋值方式跟二维数组一样。
书上关于多维数组的只有一页,是不是多维数组在C语言中用的少,还是基本不用。
int a[3][4] ;// 3个可以存储4个int型元素的一维数组
double d[4][4]; //4个可以存储4个double型元素的一维数组
二维数组储存方式
m[0][0] m[0][1] m[0][2]
m[1][0] m[1][1] m[1][2]
m[2][0] m[2][1] m[2][2]
把二维数组看做教室的桌子,而学生看做所储存的元素(用学号表示一个学生)
行
列 0 1 2 3
0 1201 1208 1215 1222
1 1202 1209 1216 1223
2 1203 1210 1217 1224
3 1204 1211 1218 1225
4 1205 1212 1219 1226
5 1206 1213 1220 1227
6 1207 1214 1221 1228
把行看做排 列看做组
假如你要找 1210 首先你要知道他在几行几列.
二维数组的定义和赋值
其标准形式如下:
数据类型 数组名[一维容量][二维容量]
int a[3][3] ;//定义一个可以存储9个int型元素的二维数组
char c[2][5];//定义一个可以存储10个char型元素的二维数组
int a[3,3];//错误
注意:二维数组的容量 == 一维容量 * 二维容量
还有数组容量必须为常量。
二维数组的赋值
1.用花括号把数值分开。这样比较直观,有利于可读性,管理。
int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
2.跟一维数组一样的赋值方式,但是这样方式,不利于可读,管理
int a[3][3] = {1,2,3,4,5,6,7,8,9};
3.只部分的元素赋值。剩余的编译器会自动初始化为零。
int a[3][3] = {1,2,3,5};
int a[3][3] = {{1,2},{4},{7,8}};
二维数组的应用
1.二维数组的输入输出
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
int
main(
void
)
{
int
i = 0,j = 0;
int
a[3][3] = {0};
for
(i = 0;i < 3;++i)
{
for
(j = 0;j < 3;++j)
{
printf
(
"a[%d][%d]="
,i,j);
scanf
(
"%d"
,&a[i][j]);
}
}
for
(i = 0;i < 3;++i)
{
for
(j = 0;j < 3;++j)
printf
(
"%d\t"
,a[i][j]);
printf
(
"\n"
);
}
return
0;
}
2.查找二维数组中的最小的元素
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int
main(
void
)
{
int
i = 0,j = 0,min = 0;
int
a[4][4] = {0};
srand
((unsigned)
time
(NULL));
for
(i = 0;i < 4;++i)
{
for
(j = 0;j < 4;++j)
a[i][j] =
rand
();
//为其赋值随机数
}
for
(i = 0;i < 4;++i)
//打印数组
{
for
(j = 0;j < 4;++j)
printf
(
"%d\t"
,a[i][j]);
printf
(
"\n"
);
}
min = a[0][0];
for
(i = 0;i < 4;++i)
//判断最小值
{
for
(j = 0;j < 4;++j)
if
(min > a[i][j])
min = a[i][j];
}
printf
(
"\nmin = %d\n"
,min);
return
0;
}
3.使用两个数组实现矩阵转置输出。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
int
main(
void
)
{
int
i = 0,j = 0;
int
a[3][3] = {1,2,3,4,5,6,7,8,9};
int
t[3][3] = {0};
printf
(
"输出原数组:\n"
);
for
(i = 0;i < 3;++i)
{
for
(j = 0;j < 3;++j)
printf
(
"%d\t"
,a[i][j]);
printf
(
"\n"
);
}
for
(i = 0;i < 3;++i)
{
for
(j = 0;j < 3;++j)
t[j][i] = a[i][j];
}
printf
(
"输出转置后的数组:\n"
);
for
(i = 0;i < 3;++i)
{
for
(j = 0;j < 3;++j)
printf
(
"%d\t"
,t[i][j]);
printf
(
"\n"
);
}
return
0;
}
4.在一个数组中实现矩阵转置输出。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <stdio.h>
int
main(
void
)
{
int
i = 0,j = 0,t = 0;
int
a[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
printf
(
"输出原数组:\n"
);
for
(i = 0;i < 3;++i)
{
for
(j = 0;j < 3;++j)
printf
(
"%d\t"
,a[i][j]);
printf
(
"\n"
);
}
for
(i = 0;i < 3;++i)
{
for
(j = i + 1;j < 3;++j)
{
t = a[j][i];
a[j][i] = a[i][j];
a[i][j] = t;
}
}
printf
(
"输出转置后的数组:\n"
);
for
(i = 0;i < 3;++i)
{
for
(j = 0;j < 3;++j)
printf
(
"%d\t"
,a[i][j]);
printf
(
"\n"
);
}
return
0;
}
多维数组
int a[2][3][6]; //定义一个可以存储36个int型的多维数组。
其定义和赋值方式跟二维数组一样。
书上关于多维数组的只有一页,是不是多维数组在C语言中用的少,还是基本不用。
- [C语言]菜鸟的一些理解-数组2
- [C语言]菜鸟的一些理解-数组1
- [C语言]菜鸟的一些理解-字符串
- [C语言]菜鸟的一些理解-函数
- [C语言]菜鸟的一些理解-指针
- [C语言]菜鸟的一些理解-预处理
- [C语言]菜鸟的一些理解-选择结构
- [C语言]菜鸟的一些理解-循环结构
- [C语言]菜鸟的一些理解-堆管理
- [C语言]菜鸟一些理解—变量常量
- [C语言]菜鸟的一些理解-逻辑操作符,自增自减
- [C语言]菜鸟的一些理解-结构体,共用体,枚举,位域
- 菜鸟学C语言一些经验-2-有关C语言的书写规范问题!
- C语言一些理解
- C语言 数组与指针的理解
- C语言中多维数组的理解
- C语言 数组与指针的理解
- C语言中多维数组的理解
- 顺序队列之C++实现
- I.MX6开发板 I.MX6核心板 明远智睿 飞思卡尔 freescale Cotex A9 Android Linux QT
- 边框(Border)
- 滚动面板(JScrollPane)
- asp.net中用Eval绑定时间的格式
- [C语言]菜鸟的一些理解-数组2
- gridview行编辑时绑定Dropdownlist并选中对应值
- 自己整理的c#.net函数列表
- 数学之路(3)-机器学习(3)-机器学习算法-欧氏距离(1)
- 字符串操作总结
- php.ini详细介绍与设置,配置
- 一个迷你编辑器
- 基于MVC和jQuery EasyUI的开源架构--架构简介
- 2013.08.31学习日记