第六章:C语言的数组

        在我的生活中,有许许多多的东西,有强迫症的小伙伴们,喜欢把它们分类到一个地方保存,这样一来,用的时候就按分类的形式来找自己需要的东西,而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;
}

三:多维数组(有兴趣的小伙伴可以自己研究研究)

这里有关于数组的题目(三子棋实现,扫雷可以看看博主的博客)

        不知不觉就到了尾声呢,咱们第六章的知识点就到这里了啦,作为小白的我,可能写的不是很好,不对的地方还请大佬大佬指点指点。

猜你喜欢

转载自blog.csdn.net/AAlykk/article/details/130611863
今日推荐