一、一维数组( ①类型一致;②元素个数有限、为常量)
1.定义
数组名【元素下标】 eg: int a[6]
注:下标—常量、变量、表达式
2.数组的初始化
1)全部初始化
int a[5] = {1,2,3,4,5}
2)局部初始化
int a[5] = {1,2,3}
3)默认初始化
int a[ ] = {1,2,3,4,5}
3.数据的存储
int a[5] = {0}
1)数据存储空间=每个元素所占空间大小 * 元素个数
2)连续性、有序性
4.数组常见操作
1)获得数组元素中的最大值
2)获得数组中最大值、最小值元素的下标
3)数组的排序
①冒泡排序
#include <stdio.h>
int main(void)
{
int a[5] = {0};
int i = 0;
int j = 0;
int tmp = 0;
int len = sizeof(a) / sizeof(a[0]);
for (i = 0; i < len; i++)
{
scanf("%d", &a[i]);
}
for (j = 0; j < len-1; j++)
{
for (i = 0; i < len-1-j; i++)
{
if (a[i] > a[i+1])
{
tmp = a[i];
a[i] = a[i+1];
a[i+1] = tmp;
}
for (i = 0; i < len; i++)
{
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
②选择排序
#include <stdio.h>
int main(void)
{
int a[5] = {0};
int i = 0;
int j = 0;
int tmp = 0;
int min = 0;
int len = sizeof(a) / sizeof(a[0]);
for (i = 0; i < len; i++)
{
scanf("%d", &a[i]);
}
for (j = 0; j < len-1; j++)
{
min = j;
for (i = j + 1; i < len; i++)
{
if (a[i] < a[min])
{
min = i;
}
}
if (min != j)
tmp = a[min];
a[min] = a[j];
a[j] = tmp;
}
}
for (i = 0; i < len; i++)
{
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
5.数组元素的倒置
#include <stdio.h>
int main(void)
{
int i = 0;
int a[5] = {0};
int tmp = 0;
int len = sizeof(a) / sizeof(a[0]);
for (i = 0; i < len; i++)
{
scanf("%d", &a[i]);
}
for (i = 0; i < len / 2; i++)
{
tmp = a[i];
a[i] = a[len-1-i];
a[len-1-i] = tmp;
}
for (i = 0; i < len; i++)
{
printf("%d ", a[i]);
}
printf("\n");
return 0;
}