第十回合:数组
数组:在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。
PS: 使用数组前必须先进行定义。
A:一维数组
(a) 定义:
类型说明符 数组名[常量表达式];
PS: (1)类型说明符是任何一种基本的数据类型或构造数据类型
(2)数组名是用户定义的合法的标识符
(3)方括号中的常量表达式表示元素的个数,即数组的长度。
(4)数组的下标是从0开始计算的。
如:
int a[10]; 说明整型数组a,有10个元素。
floatb[10]; 说明实型数组b,有10个元素。
char ch[20]; 说明字符数组ch,有20个元素。
(b) 初始化
类型说明符 数组名[常量表达式]= {值, 值, 值……};
(1) 可以给部分的元素赋初始值
如;
int a[10]= {0, 1, 2, 3};
表示只给a[0]~a[4]分别赋值,而后面的自动初始为0;
(2) 可以给元素逐个赋值
如:
int a[3]= {0, 0, 1};
表示给数组都初始化了
(3) 给全部的元素赋值,可以不给出数组的个数
如:
int a[]= {3, 2, 4, 6};
等价于:
int a[4]= {3, 2, 4, 6};
(c) 数组的输入输出
(1) 整型数组(实型数组与此类似)
#include <stdio.h>
int main() //加int,表示有int的返回值
{
int i;
int i_num[4]; //有4个元素的整型数组
printf("请输入4个整数:");
for(i=0; i<4; i++)
{
scanf("%d", &i_num[i]); //scanf("%d", i_num);
}
printf("我们将打印该数组的值:\n");
for(i=0; i< 4; i++)
{
printf("%d ", i_num[i]);
}
printf("\n"); //打印换行符
return 0;
}
(2) 字符串数组
方法一:
#include <stdio.h>
int main() //加int,表示有int的返回值
{
int i;
char string[4]; //有4个元素的字符数组
printf("请输入4个字符:");
for(i=0; i<4; i++)
{
scanf("%c", &string[i]);
}
printf("我们将打印该数组的值:\n");
for(i=0; i< 4; i++)
{
printf("%c", string[i]);
}
printf("\n"); //打印换行符
return 0;
}
方法二:
#include <stdio.h>
int main() //加int,表示有int的返回值
{
char string[4]; //有4个元素的字符数组
printf("请输入4个字符:");
scanf("%s", string);
printf("我们将打印该数组的值:\n");
printf("%s", string);
printf("\n"); //打印换行符
return 0;
}
B: 二维数组
(1) 定义:
类型说明符 数组名 [常量表达式1][常量表达式2];
常量表达式1表示第一维的长度,常量表达式2表式第二维的长度
如:int[3][2];
表示一个三行二列的数组
(2) 初始化
和一维数组一样,只不过是定义的元素个数等于:表达式1×表达式2
(复习做的笔记,还在整理中。。。。)