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

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

前言

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

L1-025 正整数A+B

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

输入格式:

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

注意:我们把输入中出现的第1个空格认为是A和B的分隔。题目保证至少存在一个空格,并且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

相关推荐
取名真是15 分钟前
Python 算法知识点从基础到进阶
开发语言·python·算法
罗西的思考32 分钟前
【轻量化复刻大模型 / KIMI K3】KDA 模块交互式演示
人工智能·算法·机器学习
揽星河..2 小时前
【C语言】底层程序设计
c语言·开发语言
沫璃染墨2 小时前
从零入门计算机网络系列(十二):HTTP长连接与会话管理详解——从Connection到Cookie与Session
linux·服务器·c++·tcp/ip·ubuntu·http·交互
nm_zfyjt3 小时前
信息流广告投放优化实践:线索成本评估模型与转化链路重构(家装建材案例)
算法·重构·内蒙古朋友圈广告服务商·内蒙古朋友圈获客
xiaoye-duck4 小时前
《C++ 项目:手写大模型接入 SDK》DeepSeek接口设计(下):流式响应实现和测试
开发语言·网络·c++·语言模型
w_zero_one4 小时前
算法--构造
java·数据结构·算法
其实防守也摸鱼4 小时前
信创安全竞赛知识总结与题库
大数据·网络·人工智能·算法·安全·php
旖旎夜光5 小时前
【C++ 基础入门】类和对象(上):封装、对象模型与 this 指针
开发语言·c++·笔记·学习