大数加、大数和的算法与实现

麻烦大家帮忙看看下面这段程序错在哪里
#include<iostream>
using namespace std;
void huge_num_add(int a1[],int b1[],int c1[],int len1)
{
int i,sum,carry;
carry=0;
for(i=len1-1;i>=0;i--)
{
sum=a1[i]+b1[i]+carry;
carry=sum/10;
c1[i+1]=sum%10;
}
c1[i+1]=carry;
}
void huge_num_m(int a2[],int b2[],int c2[],int len2)
{
int i,sum,carry;
carry=0;
for(i=len2-1;i>=0;i--)
{
sum=a2[i]-b2[i]+carry;
carry=sum/10;
c2[i+1]=sum%10;
}
c2[i+1]=carry;
}
void main(void)
{
char k1,k2;
int j,len=1;
int a[22],b[22],c[42];
int select;
void huge_num_add(int a1[],int b1[],int c1[],int len1);
void huge_num_m(int a2[],int b2[],int c2[],int len2);
cout<<"1.大数相加"<<endl;
cout<<"2.大数相减"<<endl;
cout<<"请选择"<<endl;
cin>>select;
if(select!=0)
{
switch(select)
{
case 1:
cout<<"请输入第一个大数"<<endl;
cin>>k1;
cout<<"请输入第二个大数"<<endl;
cin>>k2;
for(j=0;j<23;j++)
{
a[j]=k1;
}
for(j=0;j<23;j++)
{
b[j]=k2;
}
huge_num_add(a,b, c, len);
case 2:
cout<<"请输入第一个大数"<<endl;
cin>>k1;
cout<<"请输入第二个大数"<<endl;
cin>>k2;
for(j=0;j<23;j++)
{
a[j]=k1;
}
for(j=0;j<23;j++)
{
b[j]=k2;
}
huge_num_m(a,b,c,len);
}
}

}

第1个回答  2008-10-10
做加减法不要这么复杂,就用字符串就可以。
相似回答