大数的四则运算
老师出题。自己的想法就是用一个主函数调用多个子函数分别运算结果,子函数没问题,应该是调用问题。
相关代码
// #include
include
include
include
include
using namespace std;
int main()
{
char o;
int jia();
int jian();
int cheng();
int chu();
while(cin>>o)
{
switch(o)
{
case '+': jia();break;
case '-': jian();break;
case '*': cheng();break;
case '/': chu();break;
}
}
return 0;
}
int jia()
{
int x[100]={0},y[100]={0},z[105]={0};//将数组元素全部初始化为0
char a[100], b[100];//通过字符串对大数进行输入并储存
int len1,len2,len;
while(scanf("%s %s",a,b))
{
int i,j=0,k=0;
len1=strlen(a);
len2=strlen(b);
for(i=len1-1;i>=0;i--)//将两个字符串中的字符转化为数字,并倒序储存到数组中,即字符串为123456,则数组为654321
{
x[j]=a[i]-'0';
j++;
}
for(i=len2-1;i>=0;i--)
{
y[k]=b[i]-'0';
k++;
}
if(len1>len2)
len=len1;
else
len=len2;
i=0;//从最低位(个位)开始进行计算
int m=0;
for(i=0;i
{
z[i]=(x[i]+y[i]+m)%10;//将所得数的个位存到数组z[i]中去
if((x[i]+y[i]+m)>=10)
m=1;
else
m=0;
}
if((x[i-1]