这段程序哪里出了问题呢?
/*计算仅含有加法计算的表达式的值。该表达式长度不超过250,中间没有空格与括号,并且计算结果在整数范围内。
*/
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
int main()
{
int i=0,sum=0;
string str;
cin>>str;
while(str!='\0')
{
int temp=0;
while(isdigit(str))
{
temp+=temp*10 + str-'0';
i++;
}
sum+=temp;
i++;
}
cout<<sum<<endl;
return 0;
}
运算结果不对,这段代码哪里有问题呢? 要学会调试呀
人造人 发表于 2018-2-1 21:03
要学会调试呀
我就是不知道为什么会出现这种问题,按正常来说应该是12才对{:10_266:} temp += temp * 10 + str - '0';
和
temp = temp * 10 + str - '0';
有什么区别?
人造人 发表于 2018-2-2 00:12
temp += temp * 10 + str - '0';
和
temp = temp * 10 + str - '0';
哎呀,制杖了,谢谢了{:10_266:}, 御笔剑客 发表于 2018-2-2 00:16
哎呀,制杖了,谢谢了,
你的程序还有问题
i 等于 8
str 等于什么?
str 等于这个
人造人 发表于 2018-2-2 00:19
你的程序还有问题
对,这里确实要把第二个i++改一下
页:
[1]