极大数相加的问题 我的程序哪里出了问题?自己 看不出来,求解答
程序代码:
#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++语言,求大神指教