题目链接

https://www.luogu.com.cn/problem/P1957
传送门

题目描述

王老师正在教简单算术运算。细心的王老师收集了i道学生经常做错的口算题,并且想整理编写成一份练习。 编排这些题目是一件繁琐的事情,为此他想用计算机程序来提高工作效率。王老师希望尽量减少输入的工作量,比如5+8的算式最好只要输入5和8,输出的结果要尽量详细以方便后期排版的使用,比如对于上述输入进行处理后输出 5+8=13 以及该算式的总长度6。王老师把这个光荣的任务交给你,请你帮他编程实现以上功能。

输入格式

第一行为数值i

接着的i行为需要输入的算式,每行可能有三个数据或两个数据。

若该行为三个数据则第一个数据表示运算类型,a表示加法运算,b表示减法运算,c表示乘法运算,接着的两个数据表示参加运算的运算数。

若该行为两个数据,则表示本题的运算类型与上一题的运算类型相同,而这两个数据为运算数。

输出格式

输出2*i行。对于每个输入的算式,输出完整的运算式及结果,第二行输出该运算式的总长度

输入输出样例

输入 #1

4
a 64 46
275 125
c 11 99
b 46 64

输出 #1

64+46=110
9
275+125=400
11
11*99=1089
10
46-64=-18
9

说明

数据规模与约定

0<i<=50

运算数为非负整数且小于10000

对于50%的数据,输入的算式都有三个数据,第一个算式一定有三个数据。

cin的使用方法:(灵感来自c++ primer plus 第188最下方) 如果你定义了一个int型,那么当cin输入表达式的值是就会检测输入的是不是数字。如果程序发现用户输入了错误内容时,程序就会锁住cin,所以你就需要重置cin来接受新的输入。
采用sstream头文件中定义的字符串流对象来实现转换。

代码

#include<iostream>
#include<sstream>
#include<cstdio>
using namespace std;
struct srt{string str;int len;
};
int main(){int n;cin >> n;int a,b;char ch;srt list[n];for(int i = 0;i < n;i++){if(!(cin >> a)){cin.clear();cin >> ch >> a;}cin >> b;switch(ch){case 'a':{stringstream st;st << a <<'+'<< b <<'='<< a + b;int len = st.str().length();list[i].str = st.str();list[i].len = len;break;}case 'b':{stringstream st;st << a <<'-'<< b <<'='<< a - b;int len = st.str().length();list[i].str = st.str();list[i].len = len;break;}case 'c':{stringstream st;st << a <<'*'<< b <<'='<< a * b;int len = st.str().length();list[i].str = st.str();list[i].len = len;break;}}}for(int i = 0;i < n;i++){cout << list[i].str << endl << list[i].len << endl;}return 0;
}

P1957 口算练习题[c++版]相关推荐

  1. 洛谷P1957 口算练习题

    P1957 口算练习题 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 我自己的代码 比较长 #include <iostream> #include <cstri ...

  2. 洛谷 P1957 口算练习题(字符串操作)

    菜鸟生成记(56) P1957 口算练习题 快乐的水题;暴力模拟 #include<iostream> #include<stdio.h>//使用printf,scanf,一定 ...

  3. 【洛谷】P1957 口算练习题【C++】

    口算练习题 题目描述 王老师正在教简单算术运算.细心的王老师收集了i道学生经常做错的口算题,并且想整理编写成一份练习. 编排这些题目是一件繁琐的事情,为此他想用计算机程序来提高工作效率.王老师希望尽量 ...

  4. P1957 口算练习题(字符串与int类型的转换)

    题目描述 王老师正在教简单算术运算.细心的王老师收集了i道学生经常做错的口算题,并且想整理编写成一份练习. 编排这些题目是一件繁琐的事情,为此他想用计算机程序来提高工作效率.王老师希望尽量减少输入的工 ...

  5. P1957 口算练习题(模拟)

    1957 题目描述 王老师正在教简单算术运算.细心的王老师收集了i道学生经常做错的口算题,并且想整理编写成一份练习. 编排这些题目是一件繁琐的事情,为此他想用计算机程序来提高工作效率.王老师希望尽量减 ...

  6. P1957 口算练习题 Java

    这道题还是比较简单的,只要会将字符串转整型整型转字符串就可以了(相关链接:关于字符串和整型的转换),虽然代码比较长,但是是很简单的,耐心看看. import java.util.Scanner; pu ...

  7. P1957 口算练习题(输入情况特殊)

    思路 这个题目的难点就是如何输入,换言之就是判断输入的是否为字符及如何转换. 1.当输入的是字母时,则继续输入两个数. 2.当不是字母时,则要将输入的转换成整型,这里用到了sscanf.sscanf( ...

  8. 两种方法解决口算练习题

    文章目录 口算练习题 题目描述 输入格式 输出格式 样例 #1 样例输入 #1 样例输出 #1 提示 题解: 大佬的代码: 口算练习题 题目描述 王老师正在教简单算术运算.细心的王老师收集了i道学生经 ...

  9. Python实现100以内的加减法口算练习题

    小朋友口算练习题,100以内的加减法运算: 程式要求如下 1,100道100以内的加减法计算题 2,两数相加,和小于等于100 3,被减数必须大于减数 4,前面80道计算题的格式为A+B= 或者C-D ...

  10. <Java><字符串>口算练习题

    题目描述 王老师正在教简单算术运算.细心的王老师收集了i道学生经常做错的口算题,并且想整理编写成一份练习. 编排这些题目是一件繁琐的事情,为此他想用计算机程序来提高工作效率.王老师希望尽量减少输入的工 ...

最新文章

  1. bitwarden自建服务器,BitWarden
  2. python浅拷贝 深拷贝
  3. python需要php吗-python可以代替php吗
  4. 用总计金额求本体额与消费税额FM,所引起的金额误差问题
  5. python中的多线程求值串行和并行_python多线程和多进程——python并行编程实验
  6. Python:使用threading模块实现多线程编程三[threading.Thread类的重要函数]
  7. 也谈创业企业CEO该拿多少工资
  8. 使用docker方式安装etcd集群,带TLS证书
  9. 第二次冲刺阶段第三天
  10. 变量的数据类型和类型转换(二)
  11. 【北大知识图谱】知识图谱的关键技术及其智能应用
  12. 如何使用 Mac 在 iPhone 上录制 FaceTime 通话?
  13. Servlet(1) Servlet容器和Servlet
  14. java多线程volatile_java多线程——volatile
  15. php添加gd扩展,php安装gd扩展的方法
  16. Windows 11 LTSC 数字激活方法/HEU KMS Activator 数字激活/LTSC公key激活
  17. 01、3dB双分支定向耦合器
  18. Android设备的电池续航时间优化(Optimizing Battery Life)——(一)监听电池电量和电池的充电状态
  19. 不藏了,我的一千行 MySQL 学习笔记(2万字长文)
  20. 青岛大学计算机小姐姐,青岛大学举牌校花一夜爆红,评论区留下脏话:见不得别人好是病!...

热门文章

  1. 微机实验——十字路口交通灯控制器
  2. vtp服务器作用,VTP
  3. WinRAR密码破解
  4. dns服务器一些网站无法解析,dns解析出错,导致有些网站解析出错,重启DNS服务器就正常了。 - Exchange论坛 - 51CTO技术论坛_中国领先的IT技术社区...
  5. Tempo超进化,提效降本好帮手,工时管理小当家 Timewise
  6. 自学Python+Selenium自动化测试
  7. 阿里用回mysql_回mysql事务
  8. SPSS中的比较均值—均值分析过程
  9. 医药行业的销售数据如何分析?
  10. 基于PCL的QT开发(两个月内更新完)