C语言 高精度加法
#include<stdio.h>#include<string.h>intmain(){chara[81],b[81],c[82];intn,t,i;scanf("%s...
#include<stdio.h>
#include<string.h>
int main()
{
char a[81], b[81], c[82];
int n, t, i;
scanf("%s%s", &a[81], &b[81]);
n=strlen(a);
t=strlen(b);
if(n>=t)
i=n;
else
i=t;
for(;n==0||t==0;t--,n--,i--)
{
c[i]=(a[n-1]+b[t-1])%10;
if(a[n-1]+b[t-1]>=10)
{
if(n>t)
a[n-2]+=1;
else if(t>n)
b[t-2]+=1;
}
}
if(n==t&&a[n+1]+b[n+1]>=10)
{
c[0]=1;
for(i=0;c[i]!='\0';i++)
printf("%s", c[i]);
}
}
目前只做到相同位数相加.但已经输不出结果了.
请问为什么输出没结果?
谢谢. 展开
#include<string.h>
int main()
{
char a[81], b[81], c[82];
int n, t, i;
scanf("%s%s", &a[81], &b[81]);
n=strlen(a);
t=strlen(b);
if(n>=t)
i=n;
else
i=t;
for(;n==0||t==0;t--,n--,i--)
{
c[i]=(a[n-1]+b[t-1])%10;
if(a[n-1]+b[t-1]>=10)
{
if(n>t)
a[n-2]+=1;
else if(t>n)
b[t-2]+=1;
}
}
if(n==t&&a[n+1]+b[n+1]>=10)
{
c[0]=1;
for(i=0;c[i]!='\0';i++)
printf("%s", c[i]);
}
}
目前只做到相同位数相加.但已经输不出结果了.
请问为什么输出没结果?
谢谢. 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询