1.一维数组的基本概念:它是相同类型的元素在连续内存空间中,按一定顺序排列而成的数据结合。
基本语法:
type arr_name [常量值]
type表示的是存放的数据类型,arr_name表示的是数组名,[常量值]表示的是数组的大小。例如:
int arr [10]
2.数组的初始化:
基本结构:
int arr_name [常量值] = {初始化的值}
例如,我想要定义一个这整形arr数组,数组长度为5,里面放1,2,3,4,5这五个元素。那么是这样写的:
int arr [5] = {1,2,3,4,5}
或者我想要数组为10,里面的数全部初始化为0,那么:
int arr [10] = {0}
3.数组的下标:
在C语言中,数组是有下标的,第一个元素的下标是0.
例如有五个元素: 6 7 8 9 10
那么他们的下标为:0 1 2 3 4
因此,我们要想访问第i个元素,那么就使用 arr[i-1]
4.关于sizeof计算数组元素个数:
如果我们要想知道元素的个数,那么在C语言中是有办法解决的。那就得用到sizeof,可以计算数组的大小。
计算元素个数的方法:
int sz = sizeof(arr)/sizeof(arr[0])
sizeof(arr)表示的是整个数组所占空间的大小,而sizeof(arr[0])表示的是一个元素所占空间的大小。所以最后得到的sz就是元素的个数。
5.例题的讲解:“求十个整数之中的最大值”
5.1 第一步,我们要定义一个整型类型的arr数组,设置数组的长度为10,并且里面的元素全部初始化为0
int sz = sizeof(arr)/sizeof(arr[0])
5.2 第二步,我们用i来表示元素的下标,并且方便后面的for循环打印和scanf函数的使用:
int i = 0;
for(i=0; i<sz; i++)
{
scanf("%d",&arr[i]);
}
5.3 第三步,就开始判断了。
因为我们不知道十个数里面哪一个是最大的,因此我们可以先假设第一个元素arr[0]是最大的,
int Max = arr[0];
让它去与后面的元素比较,若后面的元素比它大,则后面的元素就为Max,以此类推,知道循环结束,就可以找到最大值了。
int Max = arr[0];//arr[0]表示数组arr的第一个元素,它是按下标来计数的。
for (i = 0; i < sz; i++)
{
if (arr[i] > Max)
{
Max = arr[i];
}
}
总体代码的实现:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int arr[10] = { 0 };//定义一个整型数组arr,数组长度为10,所有元素初始值为0.
int i = 0;
int sz = sizeof(arr) / sizeof(arr[0]);//sz = 整个数组空间大小/一个元素空间大小=元素个数
printf("请输入十个整数>");
for (i = 0; i < sz; i++)
{
scanf("%d", &arr[i]);
}
int Max = arr[0];//arr[0]表示数组arr的第一个元素,它是按下标来计数的。
for (i = 0; i < sz; i++)
{
if (arr[i] > Max)
{
Max = arr[i];
}
}
printf("%d", Max);
return 0;
}