你好!这是为你准备的第四周C语言学习笔记。本周的核心是数组 (Arrays)函数 (Functions),以及如何将它们结合起来解决问题。掌握了这些,你就能编写出结构更清晰、功能更强大的程序。

1. 数组 (Arrays)

数组是C语言中最重要的数据结构 (data structure) 之一。

1.1 一维数组 (1D Array)

一维数组就像一个清单,是线性的数据列表。

声明与使用

#include <stdio.h>
#define CLASS_SIZE 5 // 使用 #define 定义常量是好习惯

int main(void) {
    // 声明一个可以存放5个整数的数组
    int scores[CLASS_SIZE];

    // 为数组元素赋值
    scores[0] = 85; // 第一个元素
    scores[1] = 92; // 第二个元素
    scores[2] = 78;
    scores[3] = 95;
    scores[4] = 88; // 最后一个元素

    // 使用循环遍历数组
    printf("所有学生成绩:\\n");
    int i = 0;
    while (i < CLASS_SIZE) {
        printf("学生 %d: %d\\n", i + 1, scores[i]);
        i++;
    }

    return 0;
}

1.2 二维数组 (2D Array)

二维数组就像一个表格或棋盘,有行 (rows)列 (columns)。它本质上是“数组的数组”。

声明与使用

#include <stdio.h>
#define ROWS 3
#define COLS 4

int main(void) {
    // 声明一个3行4列的二维数组
    // 可以想象成3个学生,每人有4门课的成绩
    int grades[ROWS][COLS];

    // 赋值: grades[行索引][列索引]
    grades[0][0] = 88; // 第一个学生的第一个成绩
    grades[1][2] = 95; // 第二个学生的第三个成绩

    // 使用嵌套循环 (nested loops) 遍历二维数组
    int row = 0;
    while (row < ROWS) {
        int col = 0;
        printf("学生 %d 的成绩: ", row + 1);
        while (col < COLS) {
            // 这里我们给它赋一些示例值
            grades[row][col] = 80 + col;
            printf("%d ", grades[row][col]);
            col++;
        }
        printf("\\n"); // 每打印完一行后换行
        row++;
    }

    return 0;
}

2. 函数 (Functions)

函数是C语言的组织核心。它能让你将代码分解成逻辑清晰、可复用的小块。

2.1 函数的组成

// 返回类型  函数名    (参数列表)
// return type  function name (parameter list)
int           add_numbers (int num1, int num2) {
    // 函数体 (function body)
    int sum = num1 + num2;

    // 返回语句 (return statement)
    return sum;
}