计算器可以循环进行多次计算,收到特定指令才结束程序。 计算器具有不同的计算功能选择,包括标准计算、科学计算、最大数判断。标准计算包括加减乘除和求余数。科学计算包括平方、log、开方、绝对值。最大数判断功能要求使用循环依次输入数据并保存到一维数组,最大数判断功能为独立的子函数,主函数通过调用子函数求最大数。
时间: 2024-02-23 09:58:11 浏览: 85
VC++可视化课程设计(计算器).doc
好的,我可以为您提供一个基本的计算器程序的框架,您可以在此基础上进行修改和完善。
```
#include <stdio.h>
#include <math.h>
// 计算器函数声明
void standard_calculation();
void scientific_calculation();
void max_number_calculation();
// 主函数
int main() {
int choice;
do {
printf("请选择计算器功能:\n");
printf("1. 标准计算\n");
printf("2. 科学计算\n");
printf("3. 最大数判断\n");
printf("4. 退出\n");
scanf("%d", &choice);
switch (choice) {
case 1:
standard_calculation();
break;
case 2:
scientific_calculation();
break;
case 3:
max_number_calculation();
break;
case 4:
printf("谢谢使用,再见!\n");
break;
default:
printf("输入有误,请重新选择!\n");
break;
}
} while (choice != 4);
return 0;
}
// 标准计算函数
void standard_calculation() {
int choice;
double num1, num2, result;
printf("请选择标准计算功能:\n");
printf("1. 加法\n");
printf("2. 减法\n");
printf("3. 乘法\n");
printf("4. 除法\n");
printf("5. 求余数\n");
scanf("%d", &choice);
printf("请输入两个数:\n");
scanf("%lf %lf", &num1, &num2);
switch (choice) {
case 1:
result = num1 + num2;
printf("%.2lf + %.2lf = %.2lf\n", num1, num2, result);
break;
case 2:
result = num1 - num2;
printf("%.2lf - %.2lf = %.2lf\n", num1, num2, result);
break;
case 3:
result = num1 * num2;
printf("%.2lf * %.2lf = %.2lf\n", num1, num2, result);
break;
case 4:
if (num2 == 0) {
printf("除数不能为0!\n");
} else {
result = num1 / num2;
printf("%.2lf / %.2lf = %.2lf\n", num1, num2, result);
}
break;
case 5:
if (num2 == 0) {
printf("除数不能为0!\n");
} else {
result = fmod(num1, num2);
printf("%.2lf %% %.2lf = %.2lf\n", num1, num2, result);
}
break;
default:
printf("输入有误,请重新选择!\n");
break;
}
}
// 科学计算函数
void scientific_calculation() {
int choice;
double num, result;
printf("请选择科学计算功能:\n");
printf("1. 平方\n");
printf("2. 对数\n");
printf("3. 开方\n");
printf("4. 绝对值\n");
scanf("%d", &choice);
printf("请输入一个数:\n");
scanf("%lf", &num);
switch (choice) {
case 1:
result = pow(num, 2);
printf("%.2lf 的平方为 %.2lf\n", num, result);
break;
case 2:
if (num <= 0) {
printf("对数的底数必须大于0,且所求数必须大于0!\n");
} else {
result = log(num);
printf("%.2lf 的自然对数为 %.2lf\n", num, result);
}
break;
case 3:
if (num < 0) {
printf("不能对负数进行开方!\n");
} else {
result = sqrt(num);
printf("%.2lf 的平方根为 %.2lf\n", num, result);
}
break;
case 4:
result = fabs(num);
printf("%.2lf 的绝对值为 %.2lf\n", num, result);
break;
default:
printf("输入有误,请重新选择!\n");
break;
}
}
// 最大数判断函数
void max_number_calculation() {
int n, i;
double max_num, num;
printf("请输入要输入的数的个数:\n");
scanf("%d", &n);
printf("请输入 %d 个数:\n", n);
scanf("%lf", &max_num);
for (i = 2; i <= n; i++) {
scanf("%lf", &num);
if (num > max_num) {
max_num = num;
}
}
printf("最大的数为 %.2lf\n", max_num);
}
```
这个程序框架包含了三个计算器功能的函数:标准计算、科学计算和最大数判断。在主函数中,用户可以选择需要使用的功能。当选择标准计算或科学计算功能时,程序会提示用户输入两个数或一个数,并根据用户的选择计算结果并输出。当选择最大数判断功能时,程序会提示用户输入要输入的数的个数,并在循环中依次输入这些数并保存到一个数组中,最后调用子函数求出最大数并输出。为了让程序能够循环进行多次计算,我们使用了一个 do-while 循环,并在用户选择退出时跳出循环。您可以在此基础上进行修改和完善,实现更完整和实用的计算器程序。
阅读全文