高精度加法
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;
}
浙公网安备 33010602011771号