请你设计一个计算器,实现简单的数字计算功能。输入两个数和一个操作符(+、-、*、/、%)组成的表达式,输出该表达式及运算结果。注意输出结果为整数。
参考一下
#include <iostream>
using namespace std;
int main() {
int num1, num2, result;
char op;
cout << "请输入两个数字和一个操作符(+、-、*、/、%),用空格隔开:" << endl;
cin >> num1 >> num2 >> op;
switch (op) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
result = num1 / num2;
break;
case '%':
result = num1 % num2;
break;
default:
cout << "无效的操作符" << endl;
return 1;
}
cout << num1 << " " << op << " " << num2 << " = " << result << endl;
return 0;
}
%操作符的两个操作数必须为整数,因此,两个操作数是可以为负数的。标准规定,如果 a 和 b 都是整数,则 a % b 可以用公式 a - (a / b) * b 算出。
因此,有如下代码:
#include <stdio.h>
int main()
{
int a = 7, b = -8, c = 3, d = -3;
//正数模正数
printf("%d\n", a%c);//1
//a - (a / b) * b
//7 - (7 / 3) * 3
//正数模负数
printf("%d\n", a%d);//1
//7 - (7 / -3) *-3
//负数模正数
printf("%d\n", b%c);//-2
//-8 - (-8 / 3) * 3
//负数模负数
printf("%d\n", b%d);//-2
//-8 - (-8 / -3) * -3
return 0;
}