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码,而是出来了小笑脸!
展开
 我来答
scrooke
2010-01-28 · TA获得超过500个赞
知道小有建树答主
回答量:291
采纳率:0%
帮助的人:361万
展开全部
1 程序第17至第20行 颠倒字符串的循环起始条件for (i=1 应该是for (i=0
2 23行的l=11和29行的l=12应该是l1和l2,看不清楚这句话可以复制到word里面用36号字慢慢瞅~
3 第40行,s[i++]=1; 应该是s[i++]='1',这就是出现笑脸的原因,因为笑脸的ascii码就是1
archi09
2010-01-28 · TA获得超过102个赞
知道答主
回答量:18
采纳率:0%
帮助的人:20.5万
展开全部
if(l1>l2)
{
l=11; // l=l1(L1),不是l=11(十一)
s2[l2]='0';
s2[l]='\0';
}
else
{
l=12; // l=l2(L2),不是12(十二)
s1[l1]='0';
s1[l]='\0';
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式