你好!这是为你准备的第四周C语言学习笔记。本周的核心是数组 (Arrays) 和函数 (Functions),以及如何将它们结合起来解决问题。掌握了这些,你就能编写出结构更清晰、功能更强大的程序。
数组是C语言中最重要的数据结构 (data structure) 之一。
int
数组里只能放int
,一个double
数组里只能放double
。N
的数组,其索引范围是 0
到 N-1
。一维数组就像一个清单,是线性的数据列表。
#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;
}
二维数组就像一个表格或棋盘,有行 (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;
}
函数是C语言的组织核心。它能让你将代码分解成逻辑清晰、可复用的小块。
main
函数更简洁易读。这叫做抽象 (abstraction)。// 返回类型 函数名 (参数列表)
// return type function name (parameter list)
int add_numbers (int num1, int num2) {
// 函数体 (function body)
int sum = num1 + num2;
// 返回语句 (return statement)
return sum;
}
void
,表示不返回任何东西,只是执行一个动作。