C语言中数组的实现 C语言
下面给出 C 语言中数组的定义、基本使用以及冒泡排序的完整示例。
---
一、数组的定义
C 语言中定义数组的语法:
类型 数组名[元素个数];
例如:
int arr[5]; // 定义包含5个整数的数组,未初始化
int nums[3] = {1,2,3}; // 定义并初始化
int scores[] = {90,85,70}; // 编译器自动推断大小为3
注意:数组下标从 0 开始,最后一个元素下标为 长度-1。
---
二、数组的使用例子
下面是一个简单的程序,演示数组的赋值、遍历和求和:
#include <stdio.h>
int main() {
int arr[5]; // 定义
int i, sum = 0;
// 给数组元素赋值
for (i = 0; i < 5; i++) {
arr[i] = (i + 1) * 10; // 10,20,30,40,50
}
// 遍历数组并求和
for (i = 0; i < 5; i++) {
sum += arr[i];
printf("arr[%d] = %d\n", i, arr[i]);
}
printf("总和 = %d\n", sum);
return 0;
}
输出:
arr[0] = 10
arr[1] = 20
arr[2] = 30
arr[3] = 40
arr[4] = 50
总和 = 150
---
三、冒泡排序的例子
冒泡排序重复扫描数组,比较相邻元素,顺序错误则交换,每轮将最大(或最小)元素“浮”到末尾。
#include <stdio.h>
// 冒泡排序函数(升序)
void bubbleSort(int arr[], int n) {
int i, j, temp;
for (i = 0; i < n - 1; i++) { // 需要 n-1 轮
for (j = 0; j < n - 1 - i; j++) { // 每轮比较次数减少
if (arr[j] > arr[j + 1]) { // 升序:前 > 后则交换
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
// 打印数组
void printArray(int arr[], int n) {
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
int main() {
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr) / sizeof(arr[0]); // 计算数组长度
printf("排序前的数组: ");
printArray(arr, n);
bubbleSort(arr, n);
printf("排序后的数组: ");
printArray(arr, n);
return 0;
}
输出:
排序前的数组: 64 34 25 12 22 11 90
排序后的数组: 11 12 22 25 34 64 90
---
要点总结
· 数组在 C 中是固定长度的连续内存区域。
· 定义时必须指定大小(或用初始化列表自动确定)。
· 访问元素不能越界(C 语言不检查下标越界)。
· 冒泡排序时间复杂度 O(n²),适合小规模数据或教学演示。
评论 (0)
登录后可以发表评论
立即登录还没有评论,快来发表第一条评论吧!