22. 18 输出样例2: ? + 18 = ?

#include<iostream>
#include<stdlib.h>
#include <cstring>
using namespace std;
int main()
{   
	int a;
	int b;
	cin>>a>>b;
	//输入两个数的值 
    if(a>=1&&a<=10000&&b<=10000&&b>=1)
	{
		cout<<a<<" + "<<b<<" = "<<a+b;
	 } 
	else if(a>1&&a<=10000)
	
	{
		cout<<a <<" + "<<"?"<<" = "<<"?";
	}
	else if(b>1&&b<=10000) 
	{
			cout<<"?"<<" + "<<b<<" = "<<"?";
	}
	else {
		cout<<"?"<<" + "<<"?"<<" = "<<"?";
	}
	return 0;
 } 

不正确  例如2. 18输出的是2+?=?  和要求的不符合  怎么处理这个问题呢??求指教!