c++高精度加法有问题
我的这个高精度加法有问题,输入之后,出来好多ASCII码可不可帮我看一下我那里错了,十分感谢!#include<cstdlib>#include<iostream>usi...
我的这个高精度加法有问题,输入之后,出来好多ASCII码可不可帮我看一下我那里错了,十分感谢!
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int i,j,l1,l2,l,jin;
char s1[1001];
char s2[1001];
char s[1002];
for(i=1;i<=1001;i++)
s1[i]=s2[i]='0';
cin>>s1>>s2;
l1=strlen(s1);
l2=strlen(s2);
for(i=1;i<=l1/2;i++)
swap(s1[i],s1[l1-i-1]);
for(i=1;i<=l2/2;i++)
swap(s2[i],s2[l2-i-1]);
if(l1>l2)
{
l=11;
s2[l2]='0';
s2[l]='\0';
}
else
{
l=12;
s1[l1]='0';
s1[l]='\0';
}
jin=0;
for(i=1;i<=l;i++)
{
s[i]=(jin+s1[i]+s2[i]-'0'*2)%10+'0';
jin=(jin+s1[i]+s2[i]-'0'*2)/10;
}
if(jin)
s[i++]=1;
s[i]='\0';
l=strlen(s);
for(i=0;i<l/2;i++)
swap(s[i],s[l-i-1]);
cout<<s<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
不是出来ascii码,而是出来了小笑脸! 展开
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int i,j,l1,l2,l,jin;
char s1[1001];
char s2[1001];
char s[1002];
for(i=1;i<=1001;i++)
s1[i]=s2[i]='0';
cin>>s1>>s2;
l1=strlen(s1);
l2=strlen(s2);
for(i=1;i<=l1/2;i++)
swap(s1[i],s1[l1-i-1]);
for(i=1;i<=l2/2;i++)
swap(s2[i],s2[l2-i-1]);
if(l1>l2)
{
l=11;
s2[l2]='0';
s2[l]='\0';
}
else
{
l=12;
s1[l1]='0';
s1[l]='\0';
}
jin=0;
for(i=1;i<=l;i++)
{
s[i]=(jin+s1[i]+s2[i]-'0'*2)%10+'0';
jin=(jin+s1[i]+s2[i]-'0'*2)/10;
}
if(jin)
s[i++]=1;
s[i]='\0';
l=strlen(s);
for(i=0;i<l/2;i++)
swap(s[i],s[l-i-1]);
cout<<s<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
不是出来ascii码,而是出来了小笑脸! 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询