c++高精度运算:输入两数,求和。求看过程找问题,在线等,谢谢 - 爱问答

(爱问答)

c++高精度运算:输入两数,求和。求看过程找问题,在线等,谢谢

#include<bits/stdc++.h>

using namespace std;

int la[1010],lb[1010],lc[1010],ld[1010];

int main()

{

int i,j,k,s;

string a,b;

cin>>a>>b;

k=0;

for(i=a.size()-1;i>=0;i--)

{

la[k]=a[i]-'0';

k++;

}

k=0;

for(i=b.size()-1;i>=0;i--)

{

lb[k]=a[i]-'0';

k++;

}

if(a.size()>b.size()) s=a.size();

for(i=0;i<s;i++)

{

ld[i]=la[i]+lb[i]+lc[i-1];

if(ld[i]>=10){

ld[i]=ld[i]-10;

lc[i]=lc[i]+1;

}

for(i=s-1;i>=0;i--)

cout<<ld[i]; 


程序有多个问题,改好的参考

#include<bits/stdc++.h>

using namespace std;

int la[1010],lb[1010],lc[1010],ld[1010];

int main()

{
   int i,j,k,s;
   string a,b;
   cin>>a>>b;
   k=0;
   for(i=a.size()-1; i>=0; i--)
       {
           la[k]=a[i]-'0';
           k++;
       }
   k=0;
   for(i=b.size()-1; i>=0; i--)
       {
           lb[k]=b[i]-'0'; //是b[i]不是a[i]
           k++;
       }
   if(a.size()>b.size())
       s=a.size();
   else
       s=b.size(); //另一
   for(i=0; i<=s; i++) //要进位的
       {
           ld[i]=la[i]+lb[i]+lc[i]; //不能是i-1,当i=0时,下标溢出了
           if(ld[i]>=10)
               {
                   ld[i]=ld[i]-10;
                   lc[i+1]=lc[i+1]+1; //上一位
               }
       }
   if (ld[s]) //是否进位了
     s++;
   for(i=s-1; i>=0; i--)
       cout<<ld[i];
   cout << endl; //最后加个回车
   return 0;    //对应int main
}


相关标签:谢谢运算

下一篇:为什么易语言程序不能启动

上一篇:FLAC怎么转MP3才能减小音质的丢失

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?