用c语言编写一段程序,做一个计算器,计算器可以循环多次计算,收到特点指令才结束程序,计算器的功能包括标准计算、科学计算、最大数判断。标准计算包括加减乘除和求余。科学计算包括平方、log、开方、绝对值。最大数判断功能要求使用循环依次输入数据并保存到一维数组,最大数判断功能为独立的子函数,主函数通过调用子函数求最大数,标注释
时间: 2024-02-23 11:57:56 浏览: 95
下面是一个简单的C语言计算器程序,包括标准计算、科学计算和最大数判断功能。程序可以循环多次计算,直到收到指定指令才结束程序。
```c
#include <stdio.h>
#include <math.h>
// 定义最大数组长度
#define MAX_LEN 100
// 函数声明
void standard_calculator();
void scientific_calculator();
void find_max();
int main()
{
char cmd;
do {
// 打印菜单
printf("欢迎使用计算器\n");
printf("1. 标准计算\n");
printf("2. 科学计算\n");
printf("3. 最大数判断\n");
printf("4. 退出\n");
printf("请选择功能:");
// 获取用户输入
scanf(" %c", &cmd);
// 根据用户输入执行不同的功能
switch (cmd) {
case '1':
standard_calculator();
break;
case '2':
scientific_calculator();
break;
case '3':
find_max();
break;
case '4':
printf("谢谢使用,再见!\n");
break;
default:
printf("请输入正确的选项!\n");
break;
}
} while (cmd != '4');
return 0;
}
// 标准计算器
void standard_calculator()
{
double num1, num2;
char op;
printf("请输入第一个数:");
scanf("%lf", &num1);
printf("请输入运算符:");
scanf(" %c", &op);
printf("请输入第二个数:");
scanf("%lf", &num2);
switch (op) {
case '+':
printf("%.2lf + %.2lf = %.2lf\n", num1, num2, num1 + num2);
break;
case '-':
printf("%.2lf - %.2lf = %.2lf\n", num1, num2, num1 - num2);
break;
case '*':
printf("%.2lf * %.2lf = %.2lf\n", num1, num2, num1 * num2);
break;
case '/':
if (num2 == 0) {
printf("除数不能为0!\n");
} else {
printf("%.2lf / %.2lf = %.2lf\n", num1, num2, num1 / num2);
}
break;
case '%':
if (num2 == 0) {
printf("除数不能为0!\n");
} else {
printf("%.2lf %% %.2lf = %.2lf\n", num1, num2, fmod(num1, num2));
}
break;
default:
printf("请输入正确的运算符!\n");
break;
}
}
// 科学计算器
void scientific_calculator()
{
double num;
char op;
printf("请输入一个数:");
scanf("%lf", &num);
printf("请输入运算符:");
scanf(" %c", &op);
switch (op) {
case 's':
printf("sin(%.2lf) = %.2lf\n", num, sin(num));
break;
case 'c':
printf("cos(%.2lf) = %.2lf\n", num, cos(num));
break;
case 't':
printf("tan(%.2lf) = %.2lf\n", num, tan(num));
break;
case 'l':
printf("log(%.2lf) = %.2lf\n", num, log10(num));
break;
case 'e':
printf("exp(%.2lf) = %.2lf\n", num, exp(num));
break;
case 'q':
printf("sqrt(%.2lf) = %.2lf\n", num, sqrt(num));
break;
case 'a':
printf("abs(%.2lf) = %.2lf\n", num, fabs(num));
break;
case 'p':
printf("%.2lf ^ 2 = %.2lf\n", num, pow(num, 2));
break;
default:
printf("请输入正确的运算符!\n");
break;
}
}
// 最大数判断
void find_max()
{
int arr[MAX_LEN];
int len, i, max;
printf("请输入数组长度(不超过%d):", MAX_LEN);
scanf("%d", &len);
printf("请输入%d个整数:", len);
for (i = 0; i < len; i++) {
scanf("%d", &arr[i]);
}
max = arr[0];
for (i = 1; i < len; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
printf("最大数为:%d\n", max);
}
```
这段代码定义了三个函数:`standard_calculator()`、`scientific_calculator()`和`find_max()`,分别实现标准计算器、科学计算器和最大数判断功能。主函数根据用户输入选择执行不同的函数,直到收到指定指令才退出程序。
阅读全文