zoukankan      html  css  js  c++  java
  • L1-025. 正整数A+B

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

    输入格式:

    输入在一行给出A和B,其间以空格分开。问题是A和B不一定是满足要求的正整数,有时候可能是超出范围的数字负数、带小数点的实数、甚至是一堆乱码

    注意:我们把输入中出现的第1个空格认为是A和B的分隔。题目保证至少存在一个空格,并且B不是一个空字符串。

    输出格式:

    如果输入的确是两个正整数,则按格式“A + B = 和”输出。如果某个输入不合要求,则在相应位置输出“?”,显然此时和也是“?”。

    输入样例1:

    123 456
    

    输出样例1:

    123 + 456 = 579
    

    输入样例2:

    22. 18
    

    输出样例2:

    ? + 18 = ?
    

    输入样例3:

    -100 blabla bla...33
    

    输出样例3:

    ? + ? = ?

    分析:

        #include<stdio.h>
        int convert(const char *str)
        {
            int sum=0;
            int i;
            for(i=0;str[i]!='';i++)
            {
                if(str[i]>='0' && str[i]<='9')
                    sum=sum*10+str[i]-'0';
                 else
                    return -1;
    
            }
            if(sum>=1 && sum<=1000)
                return sum;
            else
                return -1;
        }
        int main()
        {
            char A[10000],B[10000];
            int a,b;
            scanf("%s ",&A);
            gets(B);
            a=convert(A);
            b=convert(B);
            if(a==-1)
                printf("? + ");
            else
                printf("%d + ",a);
             if(b==-1)
                printf("? = ");
            else
                printf("%d = ",b);
            if(a==-1||b==-1)
                printf("?
    ");
            else
                printf("%d
    ",a+b);
            return 0;
    
        }

    总结:首先简单想,并不一定用到抛出异常

  • 相关阅读:
    梯度消失和梯度爆炸
    BN的作用与使用过程
    百面机器学习笔记(二)
    正则表达式
    CSS Sprite
    事件绑定
    拖拽
    oncontextmenu
    鼠标跟随
    鼠标事件
  • 原文地址:https://www.cnblogs.com/kimsimple/p/6456067.html
Copyright © 2011-2022 走看看