3 solutions
-
0
Guest MOD
-
2
因为楼下代码太乱了,所以我小也来发一篇题解。 先贴代码:


先读入字母(这里我用的是,因为转更方便),随后判断其是不是一个数字,是就使用
istringstream()函数实现转,读入。因为题目要求与上一题的运算方式一致,所以这里不用对字母进行存储;不是则用存储字母,根据运算即可。这里可以使用to_string()函数将,等存入另一个字符串中输出,也可以直接输出:(cout<<a<<'+'<<b<<'='<<a+b<<endl;)。最后不忘
return 0;,AC生活更美好!好吧,还处处RE呢希望大家多多点赞,下篇题解见!
最后在自恋的给我一个赞2024-8-9 新增防抄袭系统 TJNO:1 -
0
#include <iostream> #include <sstream> #include <vector> #include <string> using namespace std; vector<string> split(const string& s) { vector<string> parts; istringstream iss(s); string part; while (iss >> part) { parts.push_back(part); } return parts; } int main() { int i; cin >> i; cin.ignore(); // 读取换行符 string prev_op; for (int j = 0; j < i; ++j) { string line; getline(cin, line); vector<string> parts = split(line); string op; int a, b; if (parts.size() == 3) { op = parts[0]; a = stoi(parts[1]); b = stoi(parts[2]); prev_op = op; } else { op = prev_op; a = stoi(parts[0]); b = stoi(parts[1]); } int res; if (op == "a") res = a + b; else if (op == "b") res = a - b; else res = a * b; string op_char = (op == "a") ? "+" : (op == "b") ? "-" : "*"; string expr = to_string(a) + op_char + to_string(b) + "=" + to_string(res); cout << expr << endl; cout << expr.size() << endl; } return 0; } -
0
#include <bits/stdc++.h> #include<>cstdio //cstdio要填到<>里面,这里我输入不进去 using namespace std; int main() { int i,x,y; char ch; char s[100],str[10]; cin>>i; for(int j=1; j<=i; j++) { cin>>str; if(str[0]>='a'&&str[0]<='c') { ch=str[0]; cin>>x>>y; } else { sscanf(str,"%d",&x); cin>>y; } memset(s,0,sizeof(s)); if(ch=='a') sprintf(s,"%d+%d=%d",x,y,x+y); else if(ch=='b') sprintf(s,"%d-%d=%d",x,y,x-y); else if(ch=='c') sprintf(s,"%d*%d=%d",x,y,x*y); cout<<s<<endl<<strlen(s)<<endl; } return 0; }
- 1
Information
- ID
- 492
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 5
- Tags
- (None)
- # Submissions
- 39
- Accepted
- 17
- Uploaded By