c++语言编写一个计算器,输入利用函数重载判断是整形还是实型
时间: 2024-02-18 16:02:55 浏览: 136
好的,以下是一个使用函数重载来判断输入是整型还是实型的 C++ 计算器程序:
```c++
#include <iostream>
using namespace std;
int calculate(int num1, int num2, char op) {
switch(op) {
case '+':
return num1 + num2;
case '-':
return num1 - num2;
case '*':
return num1 * num2;
case '/':
if (num2 == 0) {
cout << "除数不能为零" << endl;
return 0;
} else {
return num1 / num2;
}
default:
cout << "输入的操作符不合法" << endl;
return 0;
}
}
double calculate(double num1, double num2, char op) {
switch(op) {
case '+':
return num1 + num2;
case '-':
return num1 - num2;
case '*':
return num1 * num2;
case '/':
if (num2 == 0) {
cout << "除数不能为零" << endl;
return 0;
} else {
return num1 / num2;
}
default:
cout << "输入的操作符不合法" << endl;
return 0;
}
}
int main() {
char op;
cout << "请输入两个数字: ";
if (cin.peek() == '.' || cin.peek() == '-' || isdigit(cin.peek())) {
// 如果第一个输入的字符是小数点、负号或数字,则认为是实型
double num1, num2;
cin >> num1 >> num2;
cout << "请输入操作符 (+, -, *, /): ";
cin >> op;
cout << calculate(num1, num2, op);
} else {
// 否则认为是整型
int num1, num2;
cin >> num1 >> num2;
cout << "请输入操作符 (+, -, *, /): ";
cin >> op;
cout << calculate(num1, num2, op);
}
return 0;
}
```
这个程序定义了两个函数 `calculate`,一个用于整型计算,另一个用于实型计算。每个函数中都有一个和上一个程序类似的 `switch` 语句来进行相应的计算。在 `main` 函数中,首先通过 `cin.peek()` 函数来判断用户输入的第一个字符是什么,如果是小数点、负号或数字,则认为是实型,否则认为是整型。然后调用相应的 `calculate` 函数进行计算。
阅读全文