Description |
||
題目描述小明在做算術題,他計算了一些a+b的等式,請判斷一下他是否算對了? 輸入第一行是一個整數K,表示樣例的個數。每個樣例佔一行,形如a+b=c,其中0≤a,b,c≤1,000。 輸出每行輸出一個樣例的判斷結果,算對了輸出“Yes”,否則輸出“No”。(引號不需要輸出) 樣例輸入2 1+2=3 2+3=4 樣例輸出Yes No |
#include<iostream>
using namespace std;
int change(char s[])
{
int sum,i;
sum=s[0]-'0';i=1;
while(s[i]!='\0')
{
sum=sum*10+s[i]-'0';
++i;
}
return sum;
}
int main()
{
int k;
int Num[3];
int fh;
bool flag;
cin>>k;
while(k--)
{
char s[30];
cin>>s;
int j=0;
for(int i=0;s[i]!='\0';)
{
Num[j]=s[i]-'0';++i;
while(s[i]!='\0')
{
if(s[i]=='+')
{
j=1;++i;fh=1;break;
}
else if(s[i]=='-')
{
j=1;++i;fh=2;break;
}
else if(s[i]=='*')
{
j=1;++i;fh=3;break;
}
else if(s[i]=='/')
{
j=1;++i;fh=4;break;
}
else if(s[i]=='=')
{
j=2;++i;break;
}
Num[j]=Num[j]*10+s[i]-'0';
++i;
}
}
switch(fh)
{
case 1:
if(Num[0]+Num[1]==Num[2])
flag=1;
else
flag=0;
break;
case 2:
if(Num[0]-Num[1]==Num[2])
flag=1;
else
flag=0;
break;
case 3:
if(Num[0]*Num[1]==Num[2])
flag=1;
else
flag=0;
break;
case 4:
if(Num[0]/Num[1]==Num[2])
flag=1;
else
flag=0;
break;
}
if(flag)
{
for(int i=0;i<3;++i)
cout<< Num[i]<<" ";
cout<<"Yes"<<endl;
}
else
{
for(int i=0;i<3;++i)
cout<< Num[i]<<" ";
cout<<"No"<<endl;
}
}
}