本周学习内容总结
- 定义
类型名 数组名[行长度][列长度]
int a[3][2];
定义1个二维数组 a,3 行 2 列,6 个元素int b[5][10];
定义1个二维数组 b,5 行 10 列, 50 个元素 - 引用
先定义,后使用
数组元素的引用:
数组名[行下标] [列下标]
行下标和列下标:整型表达式
行下标的取值范围是[0,行长度-1]
列下标的取值范围是[0,列长度-1]int a[3][2]; 3 行 2 列, 6个元素
a[0][0] a[0][1]
a[1][0] a[1][1]
a[2][0] a[2][1]2). 二维数组的初始化
- 分行赋初值
int a[3][3] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
static int b[4][3] = { {1, 2, 3}, { }, {4, 5} };
数组a
1 2 3
4 5 6
7 8 9数组b
1 2 3
0 0 0
4 5 0
0 0 0 - 顺序赋初值
int a[3][3] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
static int b[4][3] = { 1, 2, 3, 0, 0, 0, 4, 5 }; - 在对数组全部元素赋初值时,不可以省略行数,但能省略列数
省略行长度
对全部元素都赋了初值
int a[ ][3] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
或分行赋初值时,在初值表中列出了全部行
static int b[ ][3] = { {1, 2, 3}, { }, {4, 5}, { } }3).使用二维数组编程
<1>.方阵转置
输入一个正整数n (1<n≤6),根据下式生成1个n*n的方阵,然后将该方阵转置(行列互换)后输出。
a[i][j] = i * n + j + 1 (0 ≤ i ≤ n-1,0 ≤ j ≤ n-1)
分析:int a[6][6]; n=3时代码为:
<2>.计算日期 ![](https://images2018.cnblogs.com/blog/1238300/201712/1238300-20171203103716413-570143660.png)#include <stdio.h> int main(void) { int i, j, n, temp; int a[6][6]; printf ( "Enter n: “ ); scanf ( "%d", &n ); /* 给二维数组赋值 略…… */ /* 行列互换 */ for ( i = 0; i < n; i++ ) for ( j = 0; j < n; j++ ) if ( i <= j ){ /* 只遍历上三角阵 */ temp = a[i][j]; a[i][j] = a[j][i]; a[j][i] = temp; } /* 按矩阵的形式输出a 略…… */ return 0; }
代码:
<font size=5 color="black">int year, month, day; int k, leap; int tab[2][13] = { {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} }; scanf("%d %d %d", &year, &month, &day); leap = (year % 4 == 0 && year%100!=0 || year%400==0); for(k = 1; k < month; k++) { day = day + tab[leap][k]; } printf("day = %d\\n", day) ; return 0; }
2.一维字符数组
- 字符串的存储和运算可以用一维字符数组实现
一维字符数组的定义、引用、初始化与其他类型的一维数组一样。 - 字符串的存储-数组初始化
字符串可以存放在一维字符数组中
static char s[6] = { \'H\', \'a\', \'p\', \'p\', \'y\', \'\\0\' };
字符数组初始化:用字符串常量
static char s[6] = { "Happy" };
static char s[6] = "Happy";
数组长度 ≥ 字符串的有效长度 + 1
char t[5]; "Happy" 能存入 t 吗?
- 字符串的存储
- 对字符串的操作
- 字符串的存储-赋值和输入
- 使用字符串编程
本周学习进程
1.二维数组
1).二维数组的定义和引用
char str[80];
定义一个含有80个字符型元素的数组str
char t[5]={\'H\', \'a\', \'p\', \'p\', \'y\'};
初始化数组 t
1).字符串