加法:
现将两个数分别计算出长度,然后用将长度较短的数为界,写一个for循环,将两个数从末往前依次相加。这个循环结束后,将长度较大的数组未计入计算的数进行运算
#include<stdio.h>
#include<string.h>
int main()
{
char a[100],b[100];
while(~scanf("%s %s",a,b))//输入两个大整数
{
int c[120]={0};//将数组初始化为0
int l1,l2;
l1=strlen(a);
l2=strlen(b);
if(l1>l2)
{
int i,j,k;
k=l1;//两个数相加,那么相加的结果长度最多加1,即c数组长度最长为l1
j=l1-1;
for(i=l2-1;i>=0;i--)//从个位开始相加
{
int x,y,z;
x=a[j]-'0'+b[i]-'0';
y=x/10;//大于10的会进位
x=x%10;//当前位置该加上的数
c[k]=c[k]+x;
if(c[k]>=10)//一个位数如果大于了10,就进一位
{
c[k]-=10;
c[k-1]+=1;
}
c[k-1]=c[k-1]+y;
if(c[k-1]>=10)//若进位的值大于10,就再进一次
{
c[k-1]-=10;
c[k-2]+=