大数相加
由于整型数的位数有限,因此整型数不能满足大整数(超长整数)的运算要求 。大整数计算是利用字符串来表示大整数,即用字符串的一位字符表示大整数的一位数值,然后根据四则运算规则实现大整数的四则运算。
大数相加我主要总结如下: 1.定义两个字符数组,并输入想要相加的大数。并分别计算出长度;#include <stdio.h>
#include <string.h>
int main(void)
{
char a[20],b[20];
int af[20],bf[20],x,y,c[21],max;
int num; //用来判断是否进位
scanf("%s %s",&a,&b);
x=strlen(a);
y=strlen(b);
max= x>y?x:y;
2.分别将两个字符数组倒序过来
for(int i=0;i<x;i++)
{
af[i]=a[x-i-1]-'0'; //将字符转化为数字
}
for(int i=0;i<y;i++)
{
bf[i]=b[y-i-1]-'0';
}
3.将转化过来的两个数组相加。
for(int i=0;i<max;i++)
{
num=bf[i]+af[i]+num;
if(num>=10)
{
c[i]=num%10;
num=num/10;
}
else
{
c[i]=num;
num=0;
}
}
4.判断最后是否需要进位并输出答案
if(num>0)
{
printf("%d",num);
for(int i=max-1;i>=0;i--)
{
printf("%d",c[i])
}
}
else
{
for(int i=max-1;i>=0;i--)
{
printf("%d",c[i])
}
}
return 0;
(完)