首页 > 电脑

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

更新时间2018-08-03 12:33:47

#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才能减小音质的丢失

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