1 条题解
-
0
自动搬运
来自洛谷,原作者为

su226
我不知道为什么AC,但是AC了;也不知道为什么WA,但是WA了。搬运于
2025-08-24 21:32:18,当前版本为作者最后更新于2018-12-14 22:53:01,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
大佬们的代码我都看不懂,下面让我来介绍一下
sscanf&sprintf大法!#include <iostream> //cin & cout 用iostream #include <cstring> //memset & strlen 用cstring #include <cstdio> //sscanf & sprintf 用cstdio using namespace std; int main(){ char a;//a用于存储运算符 int n,c,d;//n存储个数不解释,cd存储两个数字 char s[100],b[10];//s存储最终的字符串,b临时变量 cin>>n; for(int i=0;i<n;i++){ cin>>b;//输入一串字符,有可能是运算符,也有可能是数字 if(b[0]>='a' && b[0]<='z'){ a=b[0];//如果是运算符就存入a,然后输入数字 cin>>c>>d; }else{ sscanf(b,"%d",&c);//如果是数字就转换b为int存储到第一个数字 cin>>d;//然后输入剩下的第二个数字 } memset(s,0,sizeof(s));//清空原有的字符串,防止长度判断错误 if(a=='a')//用sprintf格式化 sprintf(s,"%d+%d=%d",c,d,c+d); else if(a=='b') sprintf(s,"%d-%d=%d",c,d,c-d); else if(a=='c') sprintf(s,"%d*%d=%d",c,d,c*d); cout<<s<<endl<<strlen(s)<<endl;//输出字符串和字符串长度 } return 0; }
- 1
信息
- ID
- 923
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 2
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者