pta天梯赛15分题目求解答

pta15分题目

题的目标很简单,就是求两个正整数AB的和,其中AB都在区间[1,1000]。稍微有点麻烦的是,输入并不保证是两个正整数。

代码(c语言)哪里错了,求指点

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(void){int i,j;int m,n;int x,y;
 char a[20],b[20];
scanf("%s",a);
    getchar();    //这里必须加一个来读取空格,不然getchar读到缓冲区第一位就是空格
   gets(b);
m=strlen(a);
n=strlen(b);

for(i=0;i<m;i++)
 {if(a[i]<'0'||a[i]>'9')
    break;
 }
 for(j=0;j<n;j++)
    {if(b[j]<'0'||b[j]>'9')
  break;
}  
if(i==m){x=atoi(a);
 printf("%d +",x);}
 else printf("? +");              
 if(j==n)  {y=atoi(b);
     printf(" %d =",y);}
  else printf(" ? =");
 if(i==m&&j==n){if(x<=1000&&y<=1000)
printf(" %d",x+y);
else printf(" ?");}
   else printf(" ?");            
  return 0;  
}

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^