大数相加

输入:

    第1行.:测试数据的组数

    第2行:两个整数


#include <stdio.h>

#include <string.h>

int reserve(char *num,int len)  //颠倒数组中的元素
{
    int i = 0,low = 0,high = len-1;
    char c;
    while(low < high)
    {
        c = num[low];
        num[low] = num[high];
        num[high] = c;
        low ++;
        high --;
    }
    return 0;
}
int main()
{
    int n,len_1,len_2,i = 0,j = 0;
    char num_1[1000],num_2[1000],result[1000];
    scanf("%d",&n);
    for(j = 1; j <= n; j++)
    {
        for(i = 0; i < 1000; i ++)
        {
            result[i] = '0';
        }
        scanf("%s%s",num_1,num_2);
        len_1 = strlen(num_1);
        len_2 = strlen(num_2);
        printf("Case %d:\n",j);
        printf("%s + %s = ",num_2);
        reserve(num_1,len_1);
        reserve(num_2,len_2);
        if(len_1 < len_2)   //数组num_1比数组num_2短
        {
            for(i = len_1; i < len_2; i++)    //使两个数组等长,短的数组后面添0
                num_1[i] = '0';
            for(i = 0; i < len_2; i ++)
            {
                result[i] += (num_1[i] + num_2[i] - 96);
                if(result[i] > 57)
                {
                    result[i] = ((result[i] - 48) % 10) + 48;
                    result[i+1] ++;
                }
            }
            if(result[len_2] != '0')     //如果数组的最高位发生进位
                printf("%c",result[len_2]);
             for(i = len_2 - 1; i >= 0; i --)
                printf("%c",result[i]);
        }
        else
        {
            for(i = len_2; i < len_1; i++)
                num_2[i] = '0';
            for(i = 0; i < len_1; i ++)
            {
                result[i] += (num_1[i] + num_2[i] - 96);
                if(result[i] > 57)
                {
                    result[i] = ((result[i] - 48) % 10) + 48;
                    result[i+1] ++;
                }
            }
            if(result[len_1] != '0')  
                printf("%c",result[len_1]);
             for(i = len_1 - 1; i >= 0; i --)
                printf("%c",result[i]);
        }
        printf("\n");
        if(j != n)
            printf("\n");
    }
    return 0;

}


如果大家有更好的方法请告诉我,谢谢。

相关文章

自1998年我国取消了福利分房的政策后,房地产市场迅速开展蓬...
文章目录获取数据查看数据结构获取数据下载数据可以直接通过...
网上商城系统MySql数据库设计
26个来源的气象数据获取代码
在进入21世纪以来,中国电信业告别了20世纪最后阶段的高速发...