C语言中数组的实现 C语言

下面给出 C 语言中数组的定义、基本使用以及冒泡排序的完整示例。 --- 一、数组的定义 C 语言中定义数组的语法:
C
类型 数组名[元素个数];
例如:
C
int arr[5];           // 定义包含5个整数的数组,未初始化
int nums[3] = {1,2,3}; // 定义并初始化
int scores[] = {90,85,70}; // 编译器自动推断大小为3
注意:数组下标从 0 开始,最后一个元素下标为 长度-1。 --- 二、数组的使用例子 下面是一个简单的程序,演示数组的赋值、遍历和求和:
C
#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;
}
输出:
OUTPUT
arr[0] = 10
arr[1] = 20
arr[2] = 30
arr[3] = 40
arr[4] = 50
总和 = 150
--- 三、冒泡排序的例子 冒泡排序重复扫描数组,比较相邻元素,顺序错误则交换,每轮将最大(或最小)元素“浮”到末尾。
C
#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;
}
输出:
OUTPUT
排序前的数组: 64 34 25 12 22 11 90 
排序后的数组: 11 12 22 25 34 64 90
--- 要点总结 · 数组在 C 中是固定长度的连续内存区域。 · 定义时必须指定大小(或用初始化列表自动确定)。 · 访问元素不能越界(C 语言不检查下标越界)。 · 冒泡排序时间复杂度 O(n²),适合小规模数据或教学演示。
← 返回列表

评论 (0)

登录后可以发表评论

立即登录
💬

还没有评论,快来发表第一条评论吧!