口算练习题 - 洛谷


解题思路:

1.分析题意,有50%的数据时每行都有三个输入数据的,意思为可以去定义一个字符变量和两个整数变量,每行输入三个变量,然后根据输入的两个数和字符类型计算出结果,打印出来,如何判断长度,只需要创建一个数位分离的函数判断每个数的长度即可求出来整行的长度,这是50分的做法

2.如果是满分做法,需要利用sscanf和sprintf函数的功能,sscanf可以从一个字符串中读取固定格式的信息并存储下来,而sprintf能把一个信息按照固定的格式打印到某个字符串中(需要注意:这两个函数只能对字符数组进行操作)

sscanf的用法:

sscanf(字符串,占位符类型,&变量名)

例如:char a[100]="023";  int num;

sscanf(a,"%d",&num);//将字符串a以整数的形式读取并将结果存到num中,此时num为23,有自动去除前导0的功能

int num2=45;

sprintf(a,"%d",num2)//将num2中的整数打印到字符串a中

3.理解了这个函数后,我们便可以先输入一个字符串s,然后对s[0]进行判断,如果是字符,说明是操作符,将这个字符串赋值给一个字符变量ans,然后再读入两个数,根据字符变量的值对这两个数进行操作,然后按照固定格式把他们计算的结果打印到字符数组b中,打印,并输出长度strlen(b)即可

4.如果输入的第一个s[0]是数字,那么将这个字符数组打印到整型数字中,再输入一个整数,进行操作,此时字符变量ans还是保留着上一个操作符的值,也就完美实现了与上一题运算符类型相同的问题。


#include<bits/stdc++.h>
using namespace std;
int main()
{int n,num1,num2,num3;//存放两个数字还有计算结果 char ans;//存放第一个作为运算符的字母 char a[100],b[100];cin>>n;for(int i=1;i<=n;i++)//执行n次循环 {cin>>a;//输入第一个字符数组 if(a[0]>='a'&&a[0]<='c')//如果首个字符是字母 {ans=a[0];cin>>num1>>num2;//再输入两个操作数 }else//如果首个字符不是字母的话 {sscanf(a,"%d",&num1);//将a以整数的形式读入num1 cin>>num2;//再输入一个数字 }memset(b,0,sizeof(b)); //每次都清空数组b if(ans=='a')//当字符为a时,表示加法运算 {num3=num1+num2;//计算两数相加的结果 sprintf(b,"%d+%d=%d",num1,num2,num3);//按照固定格式打印到数组b中 }else if(ans=='b')//当字符为b时,表示减法运算 {num3=num1-num2;//计算两数相减的结果 sprintf(b,"%d-%d=%d",num1,num2,num3);//按照固定格式打印到数组b中 }else//如果字符是c时,表示乘法运算 {num3=num1*num2;//计算两数相乘的结果 sprintf(b,"%d*%d=%d",num1,num2,num3);//按照固定格式打印到数组b中 }cout<<b<<endl;//输出字符串b cout<<strlen(b)<<endl; //输出字符串b的长度 }return 0;
}

洛谷-P1957-口算练习题相关推荐

  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. 洛谷 P1957 【口算练习题】

    洛谷题目难度都是假的 读入:第一个用string读,判断是否是a,b,c,不是就用进制转换转成十进制数 位数:负数的负号也算一个!0也算一位!(特判或用dowhile) 下面是代码(没有写成子程序所以 ...

最新文章

  1. 第四篇 Gallery控件
  2. Facebook打算与Google的人工智能一较高下吗?
  3. 国赛来咯!智能车竞赛-百度赛道开始报名啦!
  4. Swift学习笔记-访问控制(Access Control)
  5. Eclipse和PyDev搭建完美Python开发环境(Windows篇)
  6. 在非MVC环境下使用 Razor引擎
  7. 用于企业服务总线的类 USB 通用端口类型,第 1 部分: 当前 ESB 存在的问题
  8. 魔兽世界MPQ加载顺序
  9. 目标追踪小任务(基于SIFT,LK光流,ceres)
  10. 【并联机构工作空间分析系列2】圆弧相交法 论文解读及matlab程序
  11. AcWing 4487. 最长连续子序列 单调栈上二分 数组模拟栈的好处
  12. CSDN 迷你博客错误
  13. 游戏实时语音SDK是怎么炼成的
  14. Weston中HDMI热拔插检测
  15. 数据仓库(二) 数仓理论(重点核心)
  16. 达芬奇调色DaVinci Resolve Studio18v18.1.4 2023中文版更新发布,支持intel/M1/M2芯片
  17. CVPR2019文章解读 Pyramid Feature Attention Network for Saliency detection 用于显著性检测的金字塔特征注意网络
  18. 自动驾驶领域的Android?百度能否超越特斯拉和谷歌
  19. FineReport之localhost拒绝了我们的连接请求
  20. Python.win32gui.获取窗体

热门文章

  1. 【数学建模】微分方程求解 | dsolve函数 | ode45函数
  2. C#小知识之中英文转换、去空格
  3. python 修改文件名有特殊符号_Linux删除包含特殊符号文件名的文件
  4. 收集整理的一些windows好用的工具(持续更新)
  5. 盘姬工具箱v1.10最新版 非常实用的工具箱软件
  6. 微信小程序 —— 成员管理及开发管理
  7. 虚拟光驱打开.bin 文件
  8. MinGW-w64没有bin文件解决方法
  9. 【白帽子学习笔记 22】网络扫描与网络侦查
  10. 1.42 财务测量指标——静态评价法(投资回报率+投资回收期)