![]() |
#2
westfall9992012-08-07 19:58
|

#include <string>
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
string add(string str1,string str2)
{
vector<int >sum;
int str1len,str2len,str3len,i,j=0;
str1len=str1.length();
str2len=str2.length();
str3len=(str1len>str2len?str1len:str2len);
if(str1len>str2len)
{
for(i=str2len;i<str1len;i++)
str2.insert(0,"0");
}
else
{
for(i=str1len;i<str2len;i++)
str1.insert(0,"0");
}
string str1temp,str2temp;int strtemp;
for(i=str3len-1;i>=0;i++)
{
str1temp=str1[i];
str2temp=str2[i];
strtemp=atoi(str1temp.c_str ())+atoi(str2temp.c_str ());
if(j=1)
{
strtemp+=1;
j=0;
}
if(strtemp>9)
if(i!=0)
{
strtemp=strtemp%10;
j=1;
}
sum.push_back(strtemp);
}
reverse(sum.begin(),sum.end());
vector<int >::iterator it;
for(it= sum.begin();it<sum.end();it++)
cout<<*it;
return 0;
}
void main()
{
string str1,str2;
while(cin>>str1>>str2)
add(str1,str2);
}
请问,哪错了,编译没错误,输入两个数后就卡住没输出结果 #include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
string add(string str1,string str2)
{
vector<int >sum;
int str1len,str2len,str3len,i,j=0;
str1len=str1.length();
str2len=str2.length();
str3len=(str1len>str2len?str1len:str2len);
if(str1len>str2len)
{
for(i=str2len;i<str1len;i++)
str2.insert(0,"0");
}
else
{
for(i=str1len;i<str2len;i++)
str1.insert(0,"0");
}
string str1temp,str2temp;int strtemp;
for(i=str3len-1;i>=0;i++)
{
str1temp=str1[i];
str2temp=str2[i];
strtemp=atoi(str1temp.c_str ())+atoi(str2temp.c_str ());
if(j=1)
{
strtemp+=1;
j=0;
}
if(strtemp>9)
if(i!=0)
{
strtemp=strtemp%10;
j=1;
}
sum.push_back(strtemp);
}
reverse(sum.begin(),sum.end());
vector<int >::iterator it;
for(it= sum.begin();it<sum.end();it++)
cout<<*it;
return 0;
}
void main()
{
string str1,str2;
while(cin>>str1>>str2)
add(str1,str2);
}