开启你的编程学习之旅

云课堂提供高质量的编程课程,从入门到精通,助你成为技术大牛

立即开始学习

C语言程序开发

作者: 夏老师 更新: 2025-10-20 阅读: 4432 难度: 中级
学习工具

3. C语言函数和数组

函数是C语言的基本模块,数组用于存储相同类型的多个数据。

函数定义和调用

函数示例
#include <stdio.h> #include <math.h> // 函数声明 int add(int a, int b); double calculateCircleArea(double radius); void printFibonacci(int n); int factorial(int n); int main() { // 调用加法函数 int sum = add(10, 20); printf("10 + 20 = %d\n", sum); // 调用计算圆面积函数 double area = calculateCircleArea(5.0); printf("半径为5的圆面积: %.2f\n", area); // 调用斐波那契数列函数 printf("前10个斐波那契数列: "); printFibonacci(10); printf("\n"); // 调用阶乘函数 int fact = factorial(5); printf("5的阶乘: %d\n", fact); return 0; } // 加法函数定义 int add(int a, int b) { return a + b; } // 计算圆面积函数 double calculateCircleArea(double radius) { return M_PI * radius * radius; } // 打印斐波那契数列 void printFibonacci(int n) { int first = 0, second = 1, next; for (int i = 0; i < n; i++) { if (i <= 1) { next = i; } else { next = first + second; first = second; second = next; } printf("%d ", next); } } // 递归计算阶乘 int factorial(int n) { if (n == 0 || n == 1) { return 1; } else { return n * factorial(n - 1); } }

数组操作

一维和二维数组
#include <stdio.h> // 函数声明 void printArray(int arr[], int size); int findMax(int arr[], int size); void bubbleSort(int arr[], int size); void printMatrix(int rows, int cols, int matrix[rows][cols]); int main() { // 一维数组 int numbers[] = {5, 2, 8, 1, 9, 3}; int size = sizeof(numbers) / sizeof(numbers[0]); printf("原始数组: "); printArray(numbers, size); // 查找最大值 int max = findMax(numbers, size); printf("数组最大值: %d\n", max); // 冒泡排序 bubbleSort(numbers, size); printf("排序后数组: "); printArray(numbers, size); // 二维数组 - 矩阵 int matrix[3][3] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; printf("3x3矩阵:\n"); printMatrix(3, 3, matrix); // 矩阵转置 int transpose[3][3]; for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { transpose[j][i] = matrix[i][j]; } } printf("转置矩阵:\n"); printMatrix(3, 3, transpose); return 0; } // 打印数组函数 void printArray(int arr[], int size) { for (int i = 0; i < size; i++) { printf("%d ", arr[i]); } printf("\n"); } // 查找最大值函数 int findMax(int arr[], int size) { int max = arr[0]; for (int i = 1; i < size; i++) { if (arr[i] > max) { max = arr[i]; } } return max; } // 冒泡排序函数 void bubbleSort(int arr[], int size) { for (int i = 0; i < size - 1; i++) { for (int j = 0; j < size - i - 1; j++) { if (arr[j] > arr[j + 1]) { // 交换元素 int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } // 打印矩阵函数 void printMatrix(int rows, int cols, int matrix[rows][cols]) { for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { printf("%d ", matrix[i][j]); } printf("\n"); } }
提示: 这是一个重要的概念,需要特别注意理解和掌握。
注意: 这是一个常见的错误点,请避免犯同样的错误。