数组[]:

简介: 定义十个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

相关文章
|
1月前
|
存储 算法 C++
c++数组详细介绍(二)
c++数组详细介绍(二)
81 0
|
7天前
数组(2)
数组(2)
15 1
|
1月前
|
存储 搜索推荐 程序员
C++ 数组
C++ 数组
25 0
|
8月前
|
存储 C语言
C 数组
C 数组。
22 0
|
1月前
|
机器学习/深度学习 人工智能 JavaScript
数组练习
数组练习。
22 0
|
1月前
|
存储 程序员 C++
c++数组详细介绍(一)
前言 深入理解C++的数组和字符串是成为熟练C++程序员的重要一步。本文将探索C++中数组和字符串的基本概念,从基础到进阶,包括数组的声明、初始化、访问和多维数组的操作,以及字符串类的使用和与字符数组的转换。还将涉及异常处理、动态内存分配、STL中的其他容器、常用字符串操作。
72 0
|
1月前
|
存储 JavaScript 前端开发
数组
数组
43 0
|
10月前
|
存储 IDE Linux
|
存储 算法 编译器
数组(一)
数组(一)
98 0
数组(一)
|
存储 人工智能 编译器
6.数组
6.数组
55 0