团体程序设计天梯赛-练习集——L1-025 正整数A+B

一年之际在于春,新年的第一天,大家敲代码了吗?哈哈

前言

这道题分值是15分,值这个分,有一小点运算,难度不大,虽然说做出来了,但是有两个小疑点。

L1-025 正整数A+B

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

输入格式:

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

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

输出格式:

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

输入样例1:

c 复制代码
123 456

输出样例1:

c 复制代码
123 + 456 = 579

输入样例2:

c 复制代码
22. 18

输出样例2:

c 复制代码
? + 18 = ?

输入样例3:

c 复制代码
-100 blabla bla...33

输出样例3:

c 复制代码
? + ? = ?

OK,以上就是所有的题目内容了,题目所说的是计算两个正整数加分,两个正整数的取值范围是1~1000,不符合以上要求的值在输出,结果对应的也输出

下面看看代码吧

代码

c 复制代码
#include <stdio.h>
#include <string.h>
int panduan(char num[])//计算并且判断输入的数字是否符合要求
{
    int number = 0;
    int l = strlen(num);
    if(l>4) return -1;\\长度
    else
    {
        for(int i = 0;i < l;i++)
        {
            if(num[i] >= '0'&&num[i] <= '9')number = number*10 + (num[i] - '0');//符合要求计算
            else return -1;
        }
    }
    if(number < 1||number > 1000)return -1;//所有-1都是不符合要求的
   else return number;//返回输入的数字
}

int main()
{
    char num1[100] = {0};
    char num2[100] = {0};//定义两个数组存储输入的数字
    scanf("%s ",&num1);
    // gets(num1);
    gets(num2);//这里有一个小问题,后面展开说一下
    int number1 = panduan(num1);
    int number2 = panduan(num2);//接收两个输入的值
    //判断并且输出,为-1的话就输出?,不是-1的话就正常输出
    if(number1 == -1&&number2 == -1)printf("? + ? = ?");
    else if(number1 == -1&&number2)printf("? + %d = ?",number2);
    else if(number1&&number2 == -1)printf("%d + ? = ?",number1);
    else if(number1&&number2)printf("%d + %d = %d",number1,number2,number1+number2);
}

上面在输入的地方,注释掉了一部分,那里有一点问题,感觉这几个输入都差不多一样的分别来看一下,大家也想一下为什么不行

c 复制代码
scanf("%s %s",&num1,&num2);

以上这种输入的话,会得到

的一个结果

如果

c 复制代码
gets(num1);
gets(num2);

这样输入的话,就会得到下面

的结果

都会出错,但是都有分,下面的这个正确的好像是输出了一个? + ? = ?的两分,说实话没什么用,跟没分没什么区别了也

以上所有代码均为自己编写,本人水平有限,如果有哪里出错或者有更好的解法可以与我私信或在评论区里进行讨论

上一题:团体程序设计天梯赛-练习集------L1-024 后天

下一题:团体程序设计天梯赛-练习集------L1-026 I Love GPLT

相关推荐
熊思宇1 小时前
MoonSharp 文档二
c#·moonsharp
刘阿去1 小时前
tcc编译器教程6 进一步学习编译gmake源代码
c语言·学习
MY-备忘1 小时前
用友U9二次开发-问题记录
c#·用友
PfCoder2 小时前
C#的判断语句总结
开发语言·c#·visual studio·winform
安忘2 小时前
LeetCode 热题 -189. 轮转数组
算法·leetcode·职场和发展
Y1nhl2 小时前
力扣hot100_二叉树(4)_python版本
开发语言·pytorch·python·算法·leetcode·机器学习
RichardK.3 小时前
CCF-CSP第27次认证第1题 --《如此编码》
c++·学习
曼诺尔雷迪亚兹3 小时前
2025年四川烟草工业计算机岗位备考详细内容
数据结构·数据库·计算机网络·算法
炫爱小七4 小时前
C# 实现 AI SSE (Server-Sent Events)接口方式输出(对接AI模型API)
开发语言·c#·ai编程
蜡笔小新..4 小时前
某些网站访问很卡 or 力扣网站经常进不去(2025/3/10)
算法·leetcode·职场和发展