#include <stdio.h>// 函数声明int add(int a, int b);int subtract(int a, int b);int multiply(int a, int b);int divide(int a, int b);int main() { int num1, num2, choice; printf("选择操作: 1.加 2.减 3.乘 4.除\\n"); scanf("%d", &choice); printf("输入两个数字: "); scanf("%d %d", &num1, &num2); switch (choice) { case 1: printf("%d + %d = %d\\n", num1, num2, add(num1, num2)); break; case 2: printf("%d - %d = %d\\n", num1, num2, subtract(num1, num2)); break; case 3: printf("%d %d = %d\\n", num1, num2, multiply(num1, num2)); break; case 4: if (num2 != 0) { printf("%d / %d = %d\\n", num1, num2, divide(num1, num2)); } else { printf("除数不能为0\\n"); } break; default: printf("无效的输入\\n"); break; } return 0;}// 函数定义int add(int a, int b) { return a + b;}int subtract(int a, int b) { return a - b;}int multiply(int a, int b) { return a b;}int divide(int a, int b) { return a / b;}
排序算法
排序算法是一个常见的例子,它展示了如何将一个复杂的任务分解为多个函数。
#include <stdio.h>// 函数声明void bubbleSort(int arr[], int n);void swap(int xp, int yp);void bubbleSort(int arr[], int n) { int i, j, temp; for (i = 0; i < n-1; i++) { for (j = 0; j < n-i-1; j++) { if (arr[j] > arr[j+1]) { swap(&arr[j], &arr[j+1]); } } }}void swap(int xp, int yp) { int temp = xp; xp = yp; yp = temp;}int main() { int arr[] = {64, 34, 25, 12, 22, 11, 90}; int n = sizeof(arr)/sizeof(arr[0]); bubbleSort(arr, n); printf("Sorted array: \\n"); for (int i=0; i < n; i++) printf("%d ", arr[i]); printf("\\n"); return 0;}
文本编辑器
一个简单的文本编辑器可以被分解为读取文件、写入文件、显示文本、搜索文本等函数。
#include <stdio.h>// 函数声明void readFile(const char filename);void writeFile(const char filename);void displayText();void searchText(const char text);int main() { // 伪代码,实际函数实现会根据需求编写 readFile("example.txt"); displayText(); searchText("search term"); writeFile("saved.txt"); return 0;}// 函数定义(伪代码)void readFile(const char filename) { // 读取文件内容}void writeFile(const char filename) { // 写入文件内容}void displayText() { // 显示文本内容}void searchText(const char text) { // 在文本中搜索文本}
这些例子展示了如何将一个大型的应用程序分解为多个函数,每个函数执行一个特定的任务。这种方法使得代码更加模块化,易于理解和维护。
