在我的生活中,有许许多多的东西,有强迫症的小伙伴们,喜欢把它们分类到一个地方保存,这样一来,用的时候就按分类的形式来找自己需要的东西,而C语言也是如此,当有多个整形的数字是,就可以放在一起,放在一个内存中,而这个空间,我们称之为数组。
一:一维数组
①定义一维数组:
②引用一维数组
③一维数组举例
1.实现输入1到10的数,并且打印1到10 的数。
#include<stdio.h>
int main()
{
int i = 0;
int arr[10] = { 0 };//初始化数组,并且初始化为0
printf("请输入1到10的数字:");
for (i = 0; i < 10; i++)
{
scanf("%d", &arr[i]);
}
printf("打印1到10的数字:");
for (i = 0; i < 10; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
//这里我们要讲一下sizeof这个关键字。
//sizeof是计算某个类型的大小
//看看如何计算数组元素的个数
数组元素个数的计算:
int ret = sizeof(arr)/sizeof(arr[0]) sizeof(arr[0]) 是第一个元素大小,sizeof(arr)是数组的大小。
2.实现冒泡排序(重点)
int main()
{
int i = 0;
int j = 0;
int arr[10] = { 0 };//初始化数组
printf("请输入十个整数:\n");
//实现十个数字的输入
for (i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
{
scanf("%d", &arr[i]);
}
//实现排序(有小到大)
for (i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
{
for (j = 0; j < sizeof(arr) / sizeof(arr[0]) - i - 1; j++)
{
if (arr[j] > arr[j + 1])
{
int tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
//实现十个数字的有小到大的输出
printf("排序后的十个数字为:\n");
for (i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
{
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
一:二维数组
①定义二维数组:
②引用二维数组
初始化是这样写的 int arr[3][3] = { {1,2,3} , {4,5,6} , {7,8,9} };
注意列的大小不可以省略,行可以省略大小,但是行列可以一起省略。
③二维数组举例
打印杨辉三角(重点)
#include<stdio.h>
int main()
{
int arr[10][10] = { 0 };//初始化二维数组
int a = 1;
int b = 1;
for (a = 0; a < 10; a++)
{
//每行第一个元素都为 1
arr[a][0] = 1;
for (b = 0; b <= a; b++)
{
if (a == b)
{
//每行第最后一个元素都为 1
arr[a][b] = 1;
}
if (a > 1 && b >= 1)
{
//算法
arr[a][b] = arr[a - 1][b - 1] + arr[a - 1][b];
}
//打印每个元素
printf("%d ", arr[a][b]);
}
//每打印一行换行
printf("\n");
}
return 0;
}
三:多维数组(有兴趣的小伙伴可以自己研究研究)
这里有关于数组的题目(三子棋实现,扫雷可以看看博主的博客)
不知不觉就到了尾声呢,咱们第六章的知识点就到这里了啦,作为小白的我,可能写的不是很好,不对的地方还请大佬大佬指点指点。