函数是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");
}
}
提示: 这是一个重要的概念,需要特别注意理解和掌握。
注意: 这是一个常见的错误点,请避免犯同样的错误。