很多細(xì)節(jié),,,,,,,
#include <stdio.h>
#include <string.h>
void Sum(char a[], char b[], int c[], int lena, int lenb);
int main(void)
{
char a[1000] = { 0 }, b[1000] = { 0 };
int c[1001] = { 0 };
int number, i, j, lena, lenb, max;
scanf("%d", &number);
for (i = 0; i < number; i++)
{
/************初始化***************/
char a[1000] = { 0 };
char b[1000] = { 0 };
int c[1001] = { 0 };
/*******************************/
/***********Input**************/
scanf("%s", a);
scanf("%s", b);
lena = strlen(a);
lenb = strlen(b);
/******************************/
/*************求和***********/
Sum(a, b, c, lena, lenb);
max = lena > lenb ? lena : lenb;
/**************************/
/*************Output*********/
printf("Case %d:\n", i + 1);
printf("%s + %s = ", a, b);
if (c[0])
j = 0;
else
j = 1;
for (j; j <= max; j++)
printf("%d", c[j]);
if (i != number - 1)
printf("\n\n");
else
printf("\n");
/****************************/
}
return 0;
}
/*將a和b數(shù)組中的大數(shù)相加,將結(jié)果存儲(chǔ)到c中去,返回相加后的長(zhǎng)度lenc*/
void Sum(char a[], char b[], int c[], int lena, int lenb)
{
int temp;
int max;
max = lena > lenb ? lena : lenb;
while (lena > 0 && lenb > 0)
{
temp = a[--lena] + b[--lenb] +c[max] - 48 -48;
//如果產(chǎn)生進(jìn)位
if (temp/10)
{
c[max] = temp%10;
c[max-1] = temp/10;
}
//不產(chǎn)生進(jìn)位
else
{
c[max] = temp;
}
max--;
}
/***********a比b短*******************/
while(lenb>0)
{
c[max] += b[--lenb]-48;
if (c[max]/10)
{
c[max-1] = c[max]/10;
c[max] %= 10;
}
max--;
}
/*********************b比a短********/
while(lena>0)
{
c[max] += a[--lena] -48;
if (c[max]/10)
{
c[max-1] = c[max]/10;
c[max] %= 10;
}
max--;
}
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。