早教吧作业答案频道 -->其他-->
这是两个大数相加请帮忙改成两个大数相减#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
看了这是两个大数相加请帮忙改成两个...的网友还看了以下:
求元素周期表的拼音很多元素不会读,查字典又辛苦,希望有个拼音大全的Li锂lǐ Be铍pí B硼pé 2020-04-05 …
A.趱行(zǎn)虞候(yǔ)嗔怪(chēn)B.恁地(nèn)怨怅(chàng)尴尬(gān)C 2020-05-15 …
printf("\1\1Youareveryclever!\1\1\n\n");s\t%d:%d: 2020-05-17 …
32个罗经点每个点怎么读出来?罗经中的32个罗经点(N.N/E.NNE.NE/N.NE.NE/EE 2020-06-19 …
下列词语中加点的字读音全都正确的一组是()A.可憎zēng坟茔yíng兵燹xiǎn悲恸dòngB. 2020-07-02 …
已知两个等差数列{an}与{bn},它的前n项和分别为Sn、S”n,已知Sn/S'n=n+3/n+ 2020-07-09 …
根轨迹里面的分离点怎么求我知道用重根法可以求N'(s)D(s)=D'(s)N(s)但是用这种方法经 2020-07-31 …
定义:设有限集合A={x|x=ai,i≤n,i∈N+,n∈N+},S=a1+a2+…+an-1+a 2020-08-01 …
已知实数x1,x2,…,xn(n∈N*且n≥2)满足|xi|≤1(i=1,2,…,n),记S(x1, 2020-10-31 …
一个自然数n的所有数字之和记为S(n),若n+S(n)=2009,则n为多少.这样做可不可以:设S( 2020-12-07 …