数组总结
一维数组
类型名 数组名[数组长度];
- 其中的类型名指定数组中每个元素的类型。(类型名不指定数组变量的类型。)
- 其中的数组长度是一个整型常量表达式。(意思是int类型的。)
- 数组名后是用方括号括起来的常量表达式,不能用圆括号。
- 同一个数组中的每个元素都具有相同的数据类型。
- 在引用数组元素时,下标的合理取值范围是[0,数组长度-1]。(但下标可以越界。)
- 一维数组赋值可以通过 类型名 数组名[数组长度] = {初值表};
int shuzu[10] = {0,1,2,3,4,5,6,7,8,9};
- 一维数组赋值还可以通过在for循环中加入scanf函数实现
int n=10;
int shuzu[];
for (int i=0;i<n;i++) {scanf("%d",&a[i]);}
二维数组(矩阵)
类型名 数组名[行长度][列长度];
- 其中的行长度和列长度也都是整型常量表达式。
- 行下标的合理取值范围是[0,行长度-1],列下标的合理取值范围是[0,列长度-1]。
- 其他的跟一维数组差不多。
- 二维数组的赋值可以通过 类型名 数组名[行长度][列长度] ={初值表};
int doubleshuzu [3][4]={{1,2,3,4},{5,6,7},{0,0,0,8}};
\\第二行中未被赋值到的为0 - 二维数组的赋值还可以通过双重嵌套for循环赋值。
int a[n][m]; for (int i=0; i<n;i++) { for (int j=0; j<m ;j++) scanf("%d ",a[i][j]); }
字符串数组
char 数组名[字符长度];
- 跟一维数组差不多,只不过类型是char,所以很多特性都与一维数组相同。
- 输入字符可以通过gets()函数
char s[10]; gets(s); //需要头文件#include <string.h>
- 也可以通过strcpy(数组名,"字符串");来输入字符串
char s[100]; strpcy(s,"Hello World");//需要头文件#include <string.h>
- 可以通过strlen()函数,来获得字符数组中的字符数
int n=strlen(s);其中的字符数可以用来做for循环的条件(十分好用)
- 可以通过strcmp(数组1,数组2)函数,来比较两组字符数组
char s[100],ss[100] strcpy(s, "abcdef"); strcpy(ss, "ABCDEF"); ret = strcmp(s,ss)
比较时,两个字符串自左向右逐个字符相比(按 ASCII 值大小相比较),直到出现不同的字符或遇 \0 为止
若s>ss,则输出值大于0 ; 若s=ss,则输出值等于0 ; 若s<ss,则输出值小于0(具体多少不知道)
(之前那个acm校选有一道判断复读的题好像就可以用这个。)
这几周对数组的学习就在这里了,相比其他人也许只能算一点点吧,我还是太菜了,争取卷过别人吧
最后恭喜EDG夺冠!EDG牛逼!

浙公网安备 33010602011771号