练习函数使用
在这最后一步中,你将通过创建一个综合程序来应用所学的 C 语言函数知识,该程序演示了多种函数类型及其用法。
让我们在 ~/project
目录下创建一个名为 calculator.c
的文件:
cd ~/project
touch calculator.c
接下来,编写一个实现简单计算器的程序,其中包含各种函数:
#include <stdio.h>
// 加法函数
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;
}
// 除法函数,包含错误处理
float divide(int a, int b) {
if (b == 0) {
printf("Error: Division by zero!\n");
return 0;
}
return (float)a / b;
}
// 无返回值函数,显示计算器菜单
void display_menu() {
printf("\n--- Simple Calculator ---\n");
printf("1. Addition\n");
printf("2. Subtraction\n");
printf("3. Multiplication\n");
printf("4. Division\n");
printf("5. Exit\n");
printf("Enter your choice: ");
}
int main() {
int choice, num1, num2;
float result;
while (1) {
display_menu();
scanf("%d", &choice);
// 退出条件
if (choice == 5) {
printf("Goodbye!\n");
break;
}
// 验证选择
if (choice < 1 || choice > 4) {
printf("Invalid choice. Try again.\n");
continue;
}
// 获取用户输入
printf("Enter two numbers: ");
scanf("%d %d", &num1, &num2);
// 根据用户选择执行计算
switch (choice) {
case 1:
result = add(num1, num2);
printf("Result: %d + %d = %d\n", num1, num2, (int)result);
break;
case 2:
result = subtract(num1, num2);
printf("Result: %d - %d = %d\n", num1, num2, (int)result);
break;
case 3:
result = multiply(num1, num2);
printf("Result: %d * %d = %d\n", num1, num2, (int)result);
break;
case 4:
result = divide(num1, num2);
printf("Result: %d / %d = %.2f\n", num1, num2, result);
break;
}
}
return 0;
}
让我们分解关键概念:
- 使用了多种函数类型(返回值函数、无返回值函数)
- 函数执行特定的数学运算
display_menu()
是一个无返回值函数,用于显示菜单
- 算术函数返回计算结果
main()
函数实现了一个菜单驱动的计算器
- 包含除零错误处理
- 使用
switch
语句选择操作
编译并运行程序:
gcc calculator.c -o calculator
./calculator
示例交互:
--- Simple Calculator ---
1. Addition
2. Subtraction
3. Multiplication
4. Division
5. Exit
Enter your choice: 1
Enter two numbers: 10 5
Result: 10 + 5 = 15
--- Simple Calculator ---
...
Enter your choice: 5
Goodbye!
关于函数使用的关键点:
- 结合不同的函数类型
- 使用函数分解复杂问题
- 实现错误处理
- 创建模块化和可重用的代码