数组
数组,就是一种容器。其具有以下特点
- 数组中所有元素具有相同的数据类型
- 一旦创建,不能改变大小
- 数组中的元素在内存中是连续依次排列的
定义数组
<数据类型> 数组名称[元素个数]
- int student[100];
- 元素数量必须是整数
- C99之前,元素数量必须是编译时刻确定好的字面量
数组的单元
- 数组的每个单元就是数组类型的一个变量
- 使用数组时放在[ ]中的数字叫做下标或索引,从0开始
二维数组
- int a[3][5];
- 通常理解为a是一个三行五列的矩阵;
二维数组的遍历
二维数组的初始化
- 列数是必须给出的,行数可以由编译器数;
- 每行一个{ },逗号分离;
- 如果省略,补零;
练习
- 读入一个3*3的矩阵,设1表示X,0表示O;
- 判断获胜的一方,输出表示获胜方的字符;
#include<stdio.h>
int main()
{
const size = 3;
int board[3][3];
int i,j;
int numX=0,numO=0;
//读入矩阵
for (i = 0;i < size;i++) {
for (j = 0;j < size;j++) {
scanf("%d", &board[i][j]);
}
}
//检查
for (i = 0;i < 3;i++) {
for (j = 0;j < 3;j++) {
if (board[i][j] == 1) {
numX++;
}
else {
numO++;
}
}
if (numX == size) {
printf("X获胜");
}
else if(numO=size) {
printf("O获胜");
}
}
}
实列
写一个程序,输入不确定的[0~9]范围内的整数,统计出每一种数字出现的次数,输入-1结束。
#include<stdio.h>
int main(void)
{
int x;
int count[10]; //定义数组
//初始话数组
for (int i = 0;i < 10;i++) {
count[i] = 0;
}
//数组参与运算
scanf("%d", &x);
while (x != -1) {
if(x>=0&&x<=9) {
count[x]++;
}
scanf("%d", &x);
}
//遍历数组输出
for (int i = 0;i < 10;i++) {
printf("%d:%d\n", i, count[i]);
}
}