在我的生活中,有许许多多的东西,有强迫症的小伙伴们,喜欢把它们分类到一个地方保存,这样一来,用的时候就按分类的形式来找自己需要的东西,而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} };
初始化是这样写的 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; }
三:多维数组(有兴趣的小伙伴可以自己研究研究)
这里有关于数组的题目(三子棋实现,扫雷可以看看博主的博客)
不知不觉就到了尾声呢,咱们第六章的知识点就到这里了啦,作为小白的我,可能写的不是很好,不对的地方还请大佬大佬指点指点。