注册 登录
编程论坛 C++教室

极大数相加的问题 我的程序哪里出了问题?自己 看不出来,求解答

有鱼 发布于 2014-11-27 10:11, 381 次点击
程序代码:
#include<iostream>
#include<string>
using namespace std;
int main(){
    string num1,num2,sum="",sum1="";
    cin>>num1>>num2;
    int l1,l2,z=0,y;
    l1=num1.length(),l2=num2.length();
    if(l1<l2){
        string num3=num1;
        num1=num2,num2=num3;
    }
    l1=num1.length(),l2=num2.length();
    int i=l1-1,j=l2-1;
    while(j>=0){
        char ch1=num1[i],ch2=num2[j];
        int n1=int(ch1-'0'),n2=int(ch2-'0');
        y=(n1+n2+z)%10;
        z=(n1+n2+z)/10;
        char y_arr[1];
        y_arr[0]=y+48;
        sum=sum+y_arr[0];
        y=0;
        i--,j--;
    }
    char z_arr[1];
    z_arr[0]=z+48;
    char ch3=num1[i];
    int y1,z1=z,n3=int(ch3-'0');
    if(z>0){      
    if(i<0)
    sum=sum+z_arr[0];   
    else{
    while(i>=0){
    y1=(n3+z1)%10;
    z1=(n3+z1)/10;
    char y1_arr[1];
    y1_arr[0]=y1+48;
    sum=sum+y1_arr[0];
    y1=0;
    i--;
    }
    }
    }
    while(i>=0){
    y1=(n3+z1)%10;
    z1=(n3+z1)/10;
    char y1_arr[1];
    y1_arr[0]=y1+48;
    sum=sum+y1_arr[0];
    y1=0;
    i--;   
    }
    if(z1>0){
       char z1_arr[1];
    z1_arr[0]=z1+48;
    sum=sum+z1_arr[0];
    }   
    int count=sum.length()-1;
    while(count>=0){
        sum1=sum1+sum[count];
        count--;
    }
    cout<<sum1<<endl;
    return 0;
}

用的是C++语言,求大神指教
2 回复
#2
peixiao2014-11-28 17:58
写程序要注意格式,你写成这样,估计没人敢读下去
#3
有鱼2014-11-30 18:49
回复 2 楼 peixiao
好的  这次忘记了
1