编程实现一个简单的计算器。此计算器应具备基本计算功能:加法、减法、乘法、除法、阶乘等运算,请利用模块化程序设计的思想设计实现。提示:可利用有参有返回值函数实现计算器的各项功能。
时间: 2024-03-01 07:53:29 浏览: 63
下面是一个简单的计算器程序,包括加法、减法、乘法、除法和阶乘等功能。程序中使用了模块化编程的思想,将不同的功能实现封装成了不同的函数。
```c
#include <stdio.h>
// 加法函数
double add(double x, double y)
{
return x + y;
}
// 减法函数
double sub(double x, double y)
{
return x - y;
}
// 乘法函数
double mul(double x, double y)
{
return x * y;
}
// 除法函数
double div(double x, double y)
{
return x / y;
}
// 阶乘函数
int fact(int n)
{
if (n == 0) {
return 1;
} else {
return n * fact(n - 1);
}
}
int main()
{
int choice;
double x, y, result;
int n;
while (1) {
printf("请选择要进行的操作:\n");
printf("1. 加法\n");
printf("2. 减法\n");
printf("3. 乘法\n");
printf("4. 除法\n");
printf("5. 阶乘\n");
printf("0. 退出\n");
scanf("%d", &choice);
if (choice == 0) {
break;
}
switch (choice) {
case 1:
printf("请输入两个数:\n");
scanf("%lf %lf", &x, &y);
result = add(x, y);
printf("结果为:%.2f\n", result);
break;
case 2:
printf("请输入两个数:\n");
scanf("%lf %lf", &x, &y);
result = sub(x, y);
printf("结果为:%.2f\n", result);
break;
case 3:
printf("请输入两个数:\n");
scanf("%lf %lf", &x, &y);
result = mul(x, y);
printf("结果为:%.2f\n", result);
break;
case 4:
printf("请输入两个数:\n");
scanf("%lf %lf", &x, &y);
if (y == 0) {
printf("除数不能为0!\n");
} else {
result = div(x, y);
printf("结果为:%.2f\n", result);
}
break;
case 5:
printf("请输入一个正整数:\n");
scanf("%d", &n);
if (n < 0) {
printf("输入错误!\n");
} else {
result = fact(n);
printf("结果为:%d\n", result);
}
break;
default:
printf("输入错误!\n");
break;
}
}
return 0;
}
```
在程序中,首先在一个循环中不断地显示菜单,等待用户选择操作。然后根据用户的选择调用相应的函数进行计算,并输出结果。当用户选择退出时,程序结束。
需要注意的是,在除法函数中,如果除数为0,程序会输出一条错误消息。在阶乘函数中,如果用户输入的是一个负数,程序也会输出一条错误消息。
阅读全文