PTA正整数A+B

第二个输入可能有空格(题目保证至少存在一个空格),所以我们要用getline去读入第二个整数以防类似于

输入:12 + 100 24add

输出:112

这样的情况得到(%s不接收空格)

不然可能一直是13分

这个问题还未解决
解决方法:
1、把两个字符串放在一个中,利用题目条件 两个中间为空格
2、getline()接受包括空格在内的字符
3、fgets()
*scanf读不进空格‘ ’



#include
<stdio.h>

#include
<stdlib.h>

#include<math.h>

#include<string.h>

int main()

{

    int i,j,sum=0,fab1=0,fab2=0,q,w;

    char a[1000]={0},b[1000]={0};

    scanf("%s",a);

    getchar();

    scanf("%s",b);

    q=strlen(a);

    w=strlen(b);

    for(i=0,j=0;a[i]!='\0'||b[j]!='\0';)

    {

        if(a[i]<'0'||a[i]>'9')

            fab1=1;

        if(b[j]<'0'||b[j]>'9')

            fab2=1;

        if(a[i]!='\0'&&b[j]!='\0')

        {

           
sum+=(a[i]-'0')*pow(10,q-i-1)+(b[j]-'0')*pow(10,w-j-1);

            i++;

            j++;

        }

        else if(a[i]=='\0'&&b[j]!='\0')

        {

            sum+=(a[j]-'0')*pow(10,q-i-1);

            j++;

        }

        else if(a[i]!='\0'&&b[j]=='\0')

        {

            sum+=(b[j]-'0')*pow(10,w-j-1);

            i++;

        }

    }

    if(fab1==0&&fab2==0)

        printf("%s + %s =
%d",a,b,sum);

    else if(fab1==1&&fab2==0)

        printf("? + %s = ?",b);

    else if(fab1==0&&fab2==1)

        printf("%s + ? = ?",a);

    else if(fab1==1&&fab2==1)

        printf("? + ? = ?",sum);

 

    return 0;

}
```![在这里插入图片描述](https://img-blog.csdnimg.cn/20190130114631878.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzE3NjM4NA==,size_16,color_FFFFFF,t_70)

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值