稻花香里说丰年,听取WA声一片

P1957 口算练习题

``` int main() { string s1, s2, s3; char temp, save; stringstream trans; int n; cin >> n; while (n--)//输入n次 { cin >> s1;//输入第一个字符 if (isalpha(s1[0]))//判断第一个元素是否为字母 { temp = s1[0]; cin >> s2 >> s3;//是的话输入剩下两个数据 } else { cin >> s2;//不是的话把再输入第二个数据,把第一个数据从s1移到s2,第二个数据移到s1统一一下,方便后面转整个长的字符串 s3 = s2; s2 = s1; } int sum = 0, a1, a2;//设置a1,a2存储两个数据 trans << s2;//stringstream类型可以实现字符串还有任意数据类型的互化,这里是把第一个数据放入trans里面 trans >> a1;//把trans里面的数据转化为int型(这里可以转int是因为设置的a1是int型) trans.clear();//清除trans里面的所有数据,存一次用一次清理一次,后面是一样的操作,不解释了; trans << s3; trans >> a2; trans.clear(); if (temp == 'a')//三个判断,确定运算法则; { sum = a1 + a2; save = '+';//save用来存储运算符号,方便转为最后的长串 } else if (temp == 'b') { sum = a1 - a2; save = '-'; } else if (temp == 'c') { sum = a1 * a2; save = '*'; } string s4, s5; trans << sum; trans >> s4; trans.clear(); trans << s2 << save << s3 << '=' << s4;//把前面所有分开的串连一起,注意顺序 trans >> s5;//把trans里面的字符串存入s5; trans.clear();//清理,确保下次的trans为空 cout << s5<<endl;//输出长串 cout << s5.size() << endl;//输出长度; } return 0; } ``` 试试这个?巧用#include<sstream>头文件,希望能帮到你。
by jkluio1 @ 2024-03-19 18:01:22


已过,谢谢
by Alex866 @ 2024-05-05 10:25:40


|