当前位置: 首页 > article >正文

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

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

前言

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

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:

? + ? = ?

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

下面看看代码吧

代码

#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);
}

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

scanf("%s %s",&num1,&num2);

以上这种输入的话,会得到
在这里插入图片描述
的一个结果

如果

gets(num1);
gets(num2);

这样输入的话,就会得到下面
在这里插入图片描述
的结果
都会出错,但是都有分,下面的这个正确的好像是输出了一个? + ? = ?的两分,说实话没什么用,跟没分没什么区别了也

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

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

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


http://www.kler.cn/a/524786.html

相关文章:

  • Node.js 的底层原理
  • 不背单词快捷键(不背单词键盘快捷键)
  • 2025年美赛B题-结合Logistic阻滞增长模型和SIR传染病模型研究旅游可持续性-成品论文
  • postgres基准测试工具pgbench如何使用自定义的表结构和自定义sql
  • HarmonyOS:创建应用静态快捷方式
  • 2024收尾工作
  • AttributeError: can‘t set attribute ‘lines‘
  • 【Proteus仿真】【51单片机】多功能计算器系统设计
  • 力扣题目【6. Z 字形变换】 Java题解
  • SQL UCASE() 函数详解
  • 将DeepSeek接入Word,打造AI办公助手
  • Spring AI 在微服务中的应用:支持分布式 AI 推理
  • RK3568使用opencv(使用摄像头捕获图像数据显示)
  • python-decouple和 django-environ管理 Python/Django 项目中的环境变量
  • Van-Nav:新年,将自己学习的项目地址统一整理搭建自己的私人导航站,供自己后续查阅使用,做技术的同学应该都有一个自己网站的梦想
  • deepseek本地部署
  • 算法每日双题精讲 —— 前缀和(【模板】一维前缀和,【模板】二维前缀和)
  • 线性调整器——耗能型调整器
  • 练习题 - Django 4.x Auth 身份验证使用示例和配置方法
  • HTB:Cicada[RE-WriteUP]
  • 推荐七节来自NVIDIA、Google、斯坦福的AI课程
  • mysql.sock.lock 导致mysql重启失败
  • 《深度剖析Q-learning中的Q值:解锁智能决策的密码》
  • 前缀和——矩阵区域和
  • 【数据分享】1929-2024年全球站点的逐月平均能见度(Shp\Excel\免费获取)
  • 3.观察者模式(Observer)