7-184 正整数A+B (15 分)

题的目标很简单,就是求两个正整数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:

? + ? = ?
#include <stdio.h>
#include <string.h>
#define MAX 100int judge(const char *);
void separate( char * , char * , const char *);
int main (){char str[MAX],a[MAX],b[MAX];scanf("%s ",a);gets(b);int ai , bi ;ai =  judge(a);bi = judge(b);if ( ai == -1 && bi == -1)printf("? + ? = ?");else if (ai == -1 )printf("? + %d = ?",bi);else if (bi == -1)printf("%d + ? = ?",ai);elseprintf("%d + %d = %d",ai,bi,ai+bi);return 0  ;
}
//  void separate ( char * a, char *b , const char * str){ //把str以第一个空格为分界拆分成a,b ,可以满足a或b是空输入情况
//  当输入第一个是空白输入情况下scanf("%s ")会忽略空白输入,gets()会读入,所以有个测试点一直过不去,浪费我蛮久的
//      int blank,len,i,t;
//      char tb[2] = " ";
//      t = 0;
//      blank = strstr(str,tb) - str + 1;
//      len = strlen(str);
//      if (blank == 1)
//          *a == NULL;
//      else
//          strncpy(a,str,blank-1);
//
//      if (blank == len)
//          *b == NULL;
//      else{
//          for ( i = blank; i<len; i++){
//              b[t++] = str[i];
//          }
//          b[t] = '\0';
//      }
//  }int judge( const char  *t){//判断并取值 int i,ret,len;ret = 0;len = strlen(t);    if (len <1 || len >4)ret = -1;else {for ( i=0 ; i<len ; i++){if ( t[i] >= '0' && t[i] <= '9')ret = ret * 10 + t[i] - '0'; else {   ret = -1;break;}}}if ( ret < 1 || ret > 1000)ret = -1;return ret ;  }

7-184 正整数A+B (15 分)相关推荐

  1. R7-1 正整数A+B (15 分)

    R7-1 正整数A+B (15 分) 题的目标很简单,就是求两个正整数A和B的和,其中A和B都在区间[1,1000].稍微有点麻烦的是,输入并不保证是两个正整数. 输入格式: 输入在一行给出A和B,其 ...

  2. 天梯赛 L1-025 正整数A+B (15 分) 小坑不断

    天梯赛 L1-025 正整数A+B (15 分) 小坑不断 题目 题的目标很简单,就是求两个正整数A和B的和,其中A和B都在区间[1,1000].稍微有点麻烦的是,输入并不保证是两个正整数. 输入格式 ...

  3. 38行代码AC——L1-025 正整数A+B (15分)(~解题报告~)

    立志用更少的代码做更高效的表达 题的目标很简单,就是求两个正整数A和B的和,其中A和B都在区间[1,1000].稍微有点麻烦的是,输入并不保证是两个正整数. 输入格式: 输入在一行给出A和B,其间以空 ...

  4. 团体程序设计天梯赛-练习集L1-025 正整数A+B (15分)(getline输入)

    题目: 题的目标很简单,就是求两个正整数A和B的和,其中A和B都在区间[1,1000].稍微有点麻烦的是,输入并不保证是两个正整数. 输入格式: 输入在一行给出A和B,其间以空格分开.问题是A和B不一 ...

  5. 天梯赛 L1-025 正整数A+B (15 分)

    重要的是string的find函数与substr #include <iostream> #include <cstring> using namespace std;bool ...

  6. 团队程序设计天梯赛考点内容总结(15分以上题)

    L1: L1-002 打印沙漏 (20 分) 字符模拟 L1-003 个位数统计 (15 分) 字符模拟 L1-005 考试座位号 (15 分) 模拟 L1-006 连续因子 (20 分) 数学因数分 ...

  7. python 7-8 对于给定的正整数N,求它的位数及其各位数字之和。 (15 分)

    python python 7-8 对于给定的正整数N,求它的位数及其各位数字之和. (15 分) python 7-8 对于给定的正整数N,求它的位数及其各位数字之和. (15 分) python ...

  8. B1091 N-自守数 (15分)

    B1091 N-自守数 (15分) 如果某个数 \(K\)的平方乘以\(N\) 以后,结果的末尾几位数等于 \(K\),那么就称这个数为"\(N\)-自守数".例如 \(3×92 ...

  9. 7-4 递增序列 (15 分)

    7-4 递增序列 (15 分) 递增序列指的是,在序列中,对于任何两个相邻的数b[i]和bi+1,总有b[i]<b[i+1].现在,给你一个序列b[1],b[2],-b[n],和一个正整数d,每 ...

最新文章

  1. c# 学习笔记 (2) 窗体之间互相调用的方法
  2. mysql优化学习(二)
  3. 加快LOOP嵌套循环的一个方法
  4. 架构演进,后端开发进入微服务时代!
  5. python读取音频文件_python 读取wav 音频文件的两种方式
  6. php求平均值的函数_最全计算机二级函数关键知识点汇总整理!
  7. 关于“抵制”易语言的通告
  8. 邱锡鹏:为什么相比于CV,NLP领域的发展要缓慢?
  9. 【leetcode】 Unique Binary Search Trees (middle)☆
  10. CSDN超实用的浏览器插件—去自家网站/搜索广告、超快捷万能搜索、各种实用小功能等诸多功能等你探索
  11. 如何使用C4D的反射通道创建一个金属外观?
  12. Redis中的Scan命令的使用
  13. csrf令牌_是否需要CSRF令牌?
  14. 分块器评估与语言结构中的递归
  15. SQL中数据类型转换
  16. 我的houdini无法查看节点属性WindowsError 234
  17. [技术杂谈]常用远程工具下载各个平台操作系统
  18. 前景广阔的技术---云计算
  19. 2008年公休假安排:
  20. 2022年全球市场脱脂小麦胚芽粉总体规模、主要生产商、主要地区、产品和应用细分研究报告

热门文章

  1. 【Maven】仓库地址
  2. 混沌数学之Arnold模型
  3. Pytorch入门练习-kaggle手写字识别神经网络(SNN)实现
  4. linux 运行class文杰,Linux详细教程
  5. (分分钟秒懂)历史上最详细的动态路由技术和基础配置
  6. 学习C语言的成长之路(1)
  7. 【Tomcat】 报错以及解决方法
  8. Wifi热点创建工具配合电脑与安卓手机端实现秒传文件的方法
  9. 如何实现一个虚拟路由器
  10. 更相减损法和辗转相除法求最大公约数