高精度加法

include <stdio.h>

include <string.h>

int main()
{
char s1[100],s2[100];
int a[101]={0};
int b[101]={0};
int c[102]={0};
//存入第一个字符数字
scanf("%s", s1);
int ls1 = strlen(s1);
for (int i = 0; i <ls1; i++)
{
a[ls1 - i] = s1[i] - '0';
//输入的时候在前面,存入数组时放在后面
}
//同理操作第二个数字
scanf("%s", s2);
int ls2 = strlen(s2);
for (int i = 0; i < ls2; i++)
{
b[ls2 - i] = s2[i] - '0';
}
int la = ls1,lb = ls2;
//将两数的较大位数存为结果的初始位
int lc = (la > lb) ? la : lb;

//进行加法运算,并进位
for (int i = 1; i <= lc; i++)
{
    c[i] += a[i] + b[i];
    c[i + 1] = c[i] / 10;
    c[i] = c[i] % 10;
}
//如果进位了就输出时多一位
if(c[lc+1]>0){
    lc++;
}
for (int i = lc; i > 0; i--)
{
    printf("%d", c[i]);
}
return 0;

}

posted @ 2025-11-06 22:37  Wang040404  阅读(3)  评论(0)    收藏  举报