数组[]:

简介: 定义十个int元素的数组 初始化为0 获取键盘输入 并对数组逆置

一:一维数组


【1】数组的定义:


//定义数组前 必须明确 有几个元素 每个元素类型啥?
//需求:定义一个数组 有10个元素 每个元素为int类型
//数组定义步骤:
//1、数组名 与[]结合是数组 (与*结合是指针 与()是函数)
//2、将元素的个数 放入[]中
//3、用元素的类型 定义一个变量
//4、从上往下 整体替换int arr[10];
//数组分析步骤:

20200318201443566.png


【2】数组元素的概述


void test01(){
//有10个元素 元素的下标从0开始 0~9
//arr[0] 第0个元素 ~arr[9]第9个元素int arr[10];
//arr数组名作为类型 代表的是数组的总大小 = 元素的个数 * 每个元素的大小
printf("sizeof(arr) = %d\n",sizeof(arr));//数组的总大小
printf("sizeof(arr[0]) = %d\n",sizeof(arr[0]));//第0个元素的大小
//数组的个数 = 数组的总大小 / 元素的大小
int n = sizeof(arr)/sizeof(arr[0]);//元素的个数
//数值数组 不能整体操作 只能逐个元素操作
for (int i = 0; i < n; i++){
//{}里面定义的数组为局部数组 不初始化 内容为随机
printf("第%d个元素为%d\n", i, arr[i]);
}
}


【3】数组初始化


20200318202021205.png


【4】数组元素的读写操作


20200318202122511.png


案例一


定义是个int元素的数组 初始化为0 获取键盘输入 并遍历数组


void test04()
{int arr[10] = {0};
int n = sizeof(arr)/sizeof(arr[0]);
//获取输入
printf("请输入%d个元素\n", n);
for (int i = 0; i < n; i++){scanf("%d", &arr[i]);}
//遍历for 
(int i = 0; i < n; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}


案例二:


定义十个int元素的数组 初始化为0 获取键盘输入 并对数组逆置


void test04()
{int arr[10] = {0};
int n = sizeof(arr)/sizeof(arr[0]);
//获取输入
printf("请输入%d个元素\n", n);
for (int i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
//数组元素颠倒
for (int i = 0, j = n-1; i < j; i++,j--)
{
int tmp = 0;
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
//遍历
for (int i = 0; i < n; i++){
printf("%d ", arr[i]);
}
printf("\n");
}


二:二维数组

2020031820283887.png

20200318202859778.png


【1】遍历二维数组


void test06()
{
int arr[3][4];
int row = sizeof(arr)/sizeof(arr[0]);
int col = sizeof(arr[0])/sizeof(arr[0][0]);
//遍历二维数组//循环嵌套循环 先写内层循环(将外层固定)
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
}


【2】二维数组初始化


void test07()
{
//分段初始化
int arr[3][4]={ {1,2,3,4}, {5,6,7,8}, {9,10,11,12} };
int row = sizeof(arr)/sizeof(arr[0]);
int col = sizeof(arr[0])/sizeof(arr[0][0]);
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
//连续初始化
int arr2[3][4]={1,2,3,4,5,6,7,8,9,10,11,12 };
row = sizeof(arr2)/sizeof(arr2[0]);
col = sizeof(arr2[0])/sizeof(arr2[0][0]);
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
printf("%d ", arr2[i][j]);
}
printf("\n");
}
//综合案例:
int arr3[3][4] = {{1,2},{3},{4,5}};
int arr4[3][4] = {1,2,3,4,5};
printf("%d\n",arr3[1][2]+arr4[1][2]);}


【3】二维数组的读写操作


20200318205918246.png

2020031820593934.png


三:字符数组


void test01()
{
//需求:定义一个数组 32个元素 每个元素为char 这就是字符数组
//arr作为类型 代表的是数组的总大小
//数组名作为地址 代表的是 数组的首元素地址char arr[32] = "";
//获取键盘输入 %s和scanf结合时候 遇到空格 回车 结束输入printf("请输入一个字符串:");scanf("%s", arr);
printf("arr=%s\n",arr);
//如果想获取带空格的字符串fgets
//fgets(存放的位置, 获取字符长度的上限, 从哪儿获取字符串);
char str[32]="";
fgets(str, sizeof(str), stdin);//stdin标准输入设备(键盘)
printf("str = ##%s##\n", str);
}


四:二维的字符数组


20200318210503408.png

相关文章
|
6月前
|
存储 算法 计算机视觉
数组
数组
50 0
|
5月前
数组(2)
数组(2)
33 1
|
5月前
|
存储 开发框架 .NET
C#中的数组探索
C#中的数组探索
|
6月前
|
存储 C++ 索引
c++数组
c++数组
60 2
|
5月前
|
存储 算法 编译器
数组(1)
数组(1)
36 0
|
6月前
|
存储 搜索推荐 算法
C数组
C数组
35 0
|
6月前
|
存储 搜索推荐 程序员
C++ 数组
C++ 数组
46 0
|
存储 C语言
C 数组
C 数组。
36 0
|
6月前
数组练习2
数组练习2。
31 2
|
存储 编译器 程序员
下一篇
无影云桌面