这道题出要难点就是判断,输入的是两个数据还是三个数据 cin的使用方法:如果你定义了一个int型,那么当cin输入表达式的值是就会检测输入的是不是数字。如果程序发现用户输入了错误内容时,程序就会锁住cin,所以你就需要重置cin来接受新的输入。但是错误数据还依旧存在缓存区中 还不多说,上代码
#include <iostream>
using namespace std;
int numbit(int a)
{
int num = 0;
if (a < 0 || a == 0)
num = 1;
while (a)
{
num += 1;
a /= 10;
}
return num;
}
int numsbit(int a, int b, int c)
{
return numbit(a) + numbit(b) + numbit(c) + 2;
}
int main(void)
{
int num, ord, a, b, c; //num:存放i ord:char类型的转换
char tmp;
cin >> num;
for (int i = 0; i < num; i++)
{
if (!(cin >> a))
{
cin.clear();
cin >> tmp;
ord = int(tmp);
cin >> a;
}
cin >> b;
ord = int(tmp);
switch (ord)
{
case 'a':
c = a + b;
cout << a << "+" << b << "=" << c << endl;
cout << numsbit(a, b, c) << endl;
break;
case 'b':
c = a - b;
cout << a << "-" << b << "=" << c << endl;
cout << numsbit(a, b, c) << endl;
break;
case 'c':
c = a * b;
cout << a << "*" << b << "=" << c << endl;
cout << numsbit(a, b, c) << endl;
break;
}
}
return 0;
}