A+B I

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; 
		}
	}
 } 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章