早教吧作业答案频道 -->其他-->
这是两个大数相加请帮忙改成两个大数相减#include#includeusingnamespacestd;intmain(intargc,char*argv[]){intn,t=1;scanf("%d",&n);while(n--){chara[1000],b[1000];intc[1000];scanf("%s%s",a,b);printf("Case%d:\n",t);t++;printf
题目详情
这是两个大数相加 请帮忙改成两个大数相减
#include
#include
using namespace std;
int main(int argc,char *argv[])
{
int n,t=1;
scanf("%d",&n);
while(n--)
{
char a[1000],b[1000];
int c[1000];
scanf("%s %s",a,b);
printf("Case %d:\n",t);
t++;
printf("%s + %s = ",a,b);
int alen,blen;
int Maxlen;
alen=strlen(a);
blen=strlen(b);
if(alen>=blen)
{
Maxlen=alen;
for(int i=Maxlen-1;i>=alen-blen;i--)
{
b[i]=b[i-alen+blen];
}
for(int i=alen-blen-1;i>=0;i--)
{
b[i]='0';
}
}
else
{
Maxlen=blen;
for(int i=Maxlen-1;i>=blen-alen;i--)
{
a[i]=a[i-blen+alen];
}
for(int i=blen-alen-1;i>=0;i--)
{
a[i]='0';
}
}
int flag=0;
int k=0;
for(int i=Maxlen-1;i>=0;i--)
{
c[k]=((a[i]-'0')+(b[i]-'0')+flag)%10;
if((a[i]-'0')+(b[i]-'0')+flag>9)
{
flag=1;
}
else
{
flag=0;
}
k++;
}
if(flag==1)
{
c[Maxlen]=1;
for(int i=Maxlen;i>=0;i--)
{
printf("%d",c[i]);
}
}
else
{
for(int i=Maxlen-1;i>=0;i--)
{
printf("%d",c[i]);
}
}
printf("\n");
if(n>0)
printf("\n");
}
system("PAUSE");
return EXIT_SUCCESS;
}
#include
#include
using namespace std;
int main(int argc,char *argv[])
{
int n,t=1;
scanf("%d",&n);
while(n--)
{
char a[1000],b[1000];
int c[1000];
scanf("%s %s",a,b);
printf("Case %d:\n",t);
t++;
printf("%s + %s = ",a,b);
int alen,blen;
int Maxlen;
alen=strlen(a);
blen=strlen(b);
if(alen>=blen)
{
Maxlen=alen;
for(int i=Maxlen-1;i>=alen-blen;i--)
{
b[i]=b[i-alen+blen];
}
for(int i=alen-blen-1;i>=0;i--)
{
b[i]='0';
}
}
else
{
Maxlen=blen;
for(int i=Maxlen-1;i>=blen-alen;i--)
{
a[i]=a[i-blen+alen];
}
for(int i=blen-alen-1;i>=0;i--)
{
a[i]='0';
}
}
int flag=0;
int k=0;
for(int i=Maxlen-1;i>=0;i--)
{
c[k]=((a[i]-'0')+(b[i]-'0')+flag)%10;
if((a[i]-'0')+(b[i]-'0')+flag>9)
{
flag=1;
}
else
{
flag=0;
}
k++;
}
if(flag==1)
{
c[Maxlen]=1;
for(int i=Maxlen;i>=0;i--)
{
printf("%d",c[i]);
}
}
else
{
for(int i=Maxlen-1;i>=0;i--)
{
printf("%d",c[i]);
}
}
printf("\n");
if(n>0)
printf("\n");
}
system("PAUSE");
return EXIT_SUCCESS;
}
▼优质解答
答案和解析
C语言 两个大数相减
#include
#include
#include
void yun_suan(char *str1,char *str2)
{
int length1,length2;
int sum=0,pos1,pos2,flag1=1;
length1=strlen(str1);
length2=strlen(str2);
pos1=length1-1;
pos2=length2-1;
while(pos2!=0)
{
sum=str1[pos1]-'0'-(str2[pos2]-'0');
if(sum=0)
{
k--;
}
str1[k]=str1[k]-'0'-1+'0';
for(s=k+1;s
#include
#include
#include
void yun_suan(char *str1,char *str2)
{
int length1,length2;
int sum=0,pos1,pos2,flag1=1;
length1=strlen(str1);
length2=strlen(str2);
pos1=length1-1;
pos2=length2-1;
while(pos2!=0)
{
sum=str1[pos1]-'0'-(str2[pos2]-'0');
if(sum=0)
{
k--;
}
str1[k]=str1[k]-'0'-1+'0';
for(s=k+1;s
看了这是两个大数相加请帮忙改成两个...的网友还看了以下:
把单词的括号部分的音标(快快快急急急)()1.A.bit(i)B.dish(i)C.like(i) 2020-05-14 …
MATLAB设计Jacobi迭代法运行错误,设计函数:function [x,k]=jacobi_ 2020-05-16 …
出现在tRNA的反密码环上并可与mRNA上多种碱基配对的是 A.I B.Ψ C.X D.DHU 2020-05-17 …
古生物进入并成为岩石中化石的地质环境和过程是A.I——① B.Ⅱ——③C.Ⅲ——⑤ D.⑥?——I 2020-05-24 …
设a=i,b=│√3-i│,z1=a+b,z2=a+b(i+1),其中i为虚数单位如题设a=i,b 2020-06-14 …
6.14若变量已正确定义,在执行以下while语句时,输入字符A后,ch的值是:while(ch= 2020-06-15 …
设A,B是三阶方阵,若满足等式A+BA=B,求(A-I)^(-1)是什么?我是这样算的,BA-B= 2020-06-18 …
(斐波那契数列)谁能解释一下这个程序中的“c[i]:=c[i]+a[i]+b[i];varn,i, 2020-07-23 …
帮我做这些题目:3.设i,j为int型变量,则下面for循环语句的执行结果是for(I=10,j=0 2020-10-30 …
i为int型变量,且初值是3,有表达式i=(a=5,b=10)+(i+=b,b+=a),表达式的值是 2020-11-01 …