1. 数组的定义方式
方式1:
- 类型
- 名称
- 空间大小(一共十个单元,每个单元都是 int 类型,所以每个单元是 4 字节)
- 具体的值
方式2:
int arr[] = {1,2,3,4,5}
方式3:
int arr[10] = {1,2,3,4,5};
- 分配的空间大于输入的值的个数,这个时候,默认所有的没有赋值的位置都是 0
方式4:
int arr[10];
- 不进行初始化,结果是系统自动分配的数值
-858993460
。
2. 数组的空间占用
- int 类型定义的数组,每个单元的大小为 4 个字节;三个数据一共 12 个字节
- 可以用 %p 和 & 来查看地址的编号,可以看到确实是每个单元占四个字节,这里的三个地址值,是每个单元的 首地址值。
3. 通过 scanf 来初始化数组
4. 数组逆置
C语言解法
python解法
5. 冒泡排序法
- 循环外层控制行,内层控制列
- 一共有 10 个数据,那么只需要对整个数组做 9 次冒泡
- 第一次冒泡只需要在不同数据之间比较 9 次,第二次冒泡比较 8 次,每次冒泡,比较大小的次数递减。
C语言解法
#include<stdio.h>
#define SIZE 10
void main()
{
int arr[SIZE] = { 1,7,8,5,6,9,2,3,4,10 };
int len = SIZE;
int temp = 0;
for (int i = 0; i < SIZE-1; i++)
{
for (int j = 0; j < len-1; j++)
{
if (arr[j] > arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
len--;
}
for (int l = 0; l < SIZE; l++)
{
printf("%d", arr[l]);
}
}
python解法:
a = [1,3,2,5,4,6,7,8,10,9]
length = len(a)
for i in range(length-1):
for j in range(length-1):
if a[j] > a[j+1]:
temp = a[j]
a[j] = a[j+1]
a[j+1] = temp
length -= 1
print(a)