每日一练2023.12.2——正整数A+B【PTA】

题目链接:L1-025 正整数A+B 

题目要求:

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

输入格式:

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

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

输出格式:

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

输入样例1:

123 456

输出样例1:

123 + 456 = 579

输入样例2:

22. 18

输出样例2:

? + 18 = ?

输入样例3:

-100 blabla bla...33

输出样例3:

? + ? = ?

思路:

1.字符串形式输入俩个字符串

2.写一个函数用来判断字符串是否符合题目要求

        (1)范围在0~1000,一种判断条件是输入字符串的长度不得超过4,另一种判断的条件是sum不能超过1000

        (2)判断每个字符是否在0~9之内,如果有一个不在都不满足要求,如果都满足条件则将字符串转化为数字

3.进行不同条件的判断来输出不同情况下的结果

代码:

#include<stdio.h>
#include<string.h>

int is_integer(char ptr[])
{
    int len = strlen(ptr);
    int ret = 0;
    if (len > 4)
    {
        return -1;
    }
    else
    {
        int i = 0;
        for (i = 0; i < len; i++)
        {
            if (ptr[i] >= '0' && ptr[i] <= '9')
            {
                ret = ret * 10 + (ptr[i] - '0');
            }
            else
            {
                return -1;
            }
        }
    }
    if (ret < 1 || ret > 1000)
    {
        return -1;
    }
    else
    {
        return ret;
    }
}
int main()
{
    char arr[100] = { 0 };
    char str[100] = { 0 };
    scanf("%s ", arr);
    gets(str);
    int a = is_integer(arr);
    int b = is_integer(str);
    if (a == -1 && b == -1)
    {
        printf("? + ? = ?");
    }
    else if (a == -1 && b != -1)
    {
        printf("? + %d = ?", b);
    }
    else if (a != -1 && b == -1)
    {
        printf("%d + ? = ?", a);
    }
    else if (a != -1 && b != -1)
    {
        printf("%d + %d = %d", a, b, a + b);
    }
    return 0;
}

测试结果: 

相关推荐

  1. 算法--每日

    2023-12-07 02:18:01       43 阅读
  2. 每日算法

    2023-12-07 02:18:01       31 阅读
  3. 【PMP】每日1

    2023-12-07 02:18:01       42 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-07 02:18:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-07 02:18:01       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-07 02:18:01       82 阅读
  4. Python语言-面向对象

    2023-12-07 02:18:01       91 阅读

热门阅读

  1. Uniapp自定义导航栏

    2023-12-07 02:18:01       57 阅读
  2. 基于python和定向爬虫的商品比价系统

    2023-12-07 02:18:01       58 阅读
  3. 关于数据劫持原理(vue2和vue3)

    2023-12-07 02:18:01       54 阅读
  4. Docker在实际应用开发中的应用-AI生成

    2023-12-07 02:18:01       53 阅读
  5. mysql-binlog,redolog 和 undolog区别

    2023-12-07 02:18:01       55 阅读
  6. 深度学习常用指令(Anaconda、Python)

    2023-12-07 02:18:01       67 阅读
  7. 力扣 572. 另一棵树的子树

    2023-12-07 02:18:01       58 阅读