网址:http://zju.acmclub.com/index.php?app=problem_title&id=1&problem_id=2144

   这个题不难,一定要注意一些特殊的数字,比如31 71 或 55 55 等;

#include<stdio.h>
#include <stdlib.h>
#include<string.h>
int main()
{
    char a[20],b[20],temp[20];
    while(scanf("%s%s",a,b) != EOF)
    {
        printf("%ld ",(atoi)(a) + (atoi)(b));
        int la =strlen(a),lb = strlen(b),ltemp;
        int i,j;
        //将位数长的付给a
        if(la < lb)
        {
            strcpy(temp,a);
            strcpy(a,b);
            strcpy(b,temp);
            ltemp = la;
            la = lb;
            lb = ltemp;
        }
        //将位数短的移位,并且在前面的空余位置给上字符'0'
        for(i = la - 1, j = lb - 1; i >= la - lb; i--, j--)
            b[i] = b[j];
        for(i = 0; i < la - lb; i++)
            b[i] = '0';
        int result,flag = 0;//标记第一位是否为0
        for(i = 0; i < la; i++)
        {
            result = (int)(a[i] - '0') + (int)(b[i] - '0');
            if(result >= 10)
                result = result - 10;
            if(flag == 0 && result ==0)
                continue;
            else
                flag = 1;
            printf("%d",result);
        }
        if(flag == 0)
            printf("0");
        printf("\n");
    }  
    return 0;
}