📅  最后修改于: 2023-12-03 14:48:46.579000             🧑  作者: Mango
一维数组是由同一类型的元素构成的线性集合,每个元素可以通过一个索引来访问,索引通常是整数。一维数组是所有数据结构中最简单的一种。
一维数组的定义和初始化通常有以下两种方式。
在静态定义中,我们需要明确指定数组的大小,并对数组元素进行初始化。
int a[5] = {1, 2, 3, 4, 5};
以上代码定义了一个包含 5 个元素的整型数组,数组的值分别为 1,2,3,4,5。
在动态定义中,我们可以在程序运行时动态地指定数组的大小,并对数组元素进行初始化。
int n;
scanf("%d", &n);
int a[n];
for (int i = 0; i < n; i++) {
a[i] = i;
}
以上代码动态定义了一个包含 n 个元素的整型数组,在 for 循环中对数组元素进行了初始化。
我们可以使用中括号运算符 [] 来访问和修改数组元素。
int a[5] = {1, 2, 3, 4, 5};
printf("%d\n", a[0]); // 输出 1
a[1] = 10;
printf("%d\n", a[1]); // 输出 10
以上代码访问数组元素和修改数组元素。
一维数组常常被用于存储一组数据,并对这些数据进行处理。
int n;
scanf("%d", &n);
int a[n], i, j, temp;
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - 1 - i; j++) {
if (a[j] > a[j + 1]) {
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
for (i = 0; i < n; i++) {
printf("%d ", a[i]);
}
以上代码实现了冒泡排序算法,对输入的一维数组进行排序,并输出排序后的结果。
int n;
scanf("%d", &n);
int a[n], x, i, flag = 0;
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
scanf("%d", &x);
for (i = 0; i < n; i++) {
if (a[i] == x) {
flag = 1;
printf("%d\n", i);
break;
}
}
if (flag == 0) {
printf("not found\n");
}
以上代码实现了线性查找算法,对输入的一维数组进行查找,并输出查找结果。
一维数组是一种比较基础的数据结构,其应用范围非常广泛。熟练掌握一维数组的定义、初始化、访问和修改方法,能够非常好地提高程序员的编程能力。