• 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:

    ? + ? = ?

    这个就复习一个知识点。。 关于输入的。 scanf 读到空格的时候 输入就会结束 gets()只有当读到换行的时候才会中止

    #include<iostream>
    #include<cstring>
    #include<cstdio>
    using namespace std;
    int get(char a[])
    {
        int sum=0,k=1;
        for(int i=strlen(a)-1;i>=0;i--)
        {
            sum+=(a[i]-'0')*k;
            k*=10;
        }
        return sum;
    }
    int check(char a[])
    {
        int len=strlen(a);
        if(a[0]=='-') return 0;
        if(len>4||len==0) return 0;
        for(int i=0;i<len;i++)// 保证都是数字字符
        {
            if(a[i]<'0'||a[i]>'9') return 0;
        }
        int temp=get(a);
        if(temp<1||temp>1000) return 0;
        return 1;
    }
    int main()
    {
        char a[100],b[100];
        scanf("%s ",a);
        gets(b);
        int flaga=check(a),flagb=check(b);
        if(flaga&&flagb)
        {
            for(int i=0;i<strlen(a);i++) cout<<a[i];
            printf(" + ");
            for(int i=0;i<strlen(b);i++) cout<<b[i];
            printf(" = ");
            int sum=get(a)+get(b);
            cout<<sum<<endl;
        }
        else
        {
           if(flaga==0) printf("?");
           else
           {
               for(int i=0;i<strlen(a);i++) cout<<a[i];
           }
           printf(" + ");
           if(flagb==0) printf("?");
           else
           {
               for(int i=0;i<strlen(b);i++) cout<<b[i];
           }
           printf(" = ?
    ");
        }
        return 0;
    }
  • 相关阅读:
    WPF TreeView IsExpanded 绑定不上的问题
    WPF TreeView BringIntoViewBehavior
    WPF ListBox的进阶使用(二)
    WPF ListBox的进阶使用(一)
    双缓冲队列解决WPF界面卡死
    C# 对接Https接口
    软件架构的六大设计原则
    FeignClient接口封装
    CentOS修改root密码
    并发编程的挑战(Java并发编程的艺术)
  • 原文地址:https://www.cnblogs.com/z1141000271/p/6550192.html
Copyright © 2020-2023  润新知