若無骑士


私信TA

用户名:Teslak

访问量:4528

签 名:

等  级
排  名 1396
经  验 2920
参赛次数 5
文章发表 7
年  龄 0
在职情况 学生
学  校 曲靖
专  业

  自我简介:

TA的其他文章

解题思路:  借鉴上一位大佬的代码做了一下改进

注意事项:1、用字符串储存输入的数字

               2、字符串转成数字,逆序保存,这样方便相加,

               3、保证进位,注意,逆向输出;

参考代码:             

#include<stdio.h>

#include<string.h>


int main()

{

    char a[1001] = {0},b[1001] = {0};

    int c[1001] = {0};

    int d[1001] = {0};

    int x[1001] = {0};

    while (scanf("%s %s",a,b)!=EOF)

    {

        memset(c, 0,sizeof(c));   //  每次注意清空数组;

        memset(d, 0, sizeof(d));

        memset(x, 0, sizeof(x));

        int i,j,k,t,max;

        int da = strlen(a),db = strlen(b);

        for (i=0,j=da-1; j>=0; j--,i++)

        {

            c[i] = a[j] - '0';

        }


        for (i=0,j = db-1; j>=0; j--,i++)

        {

            d[i] = b[j] - '0';

        }

        if (da > db)

        {

            max = da;

        }

        else

        {

            max = db;

        }

        t = 0;

        k = 0;

        for (i=0,j=0; i< max; i++,j++)

        {

            t = c[i] + d[j] + t;

            x[k] = t%10;

            k++;

            t/=10;

        }

        x[k] = t;

        if (x[k]!=0)

        {

            printf("%d",x[k]);

        }

        for (i=k-1; i>=0; i--)

        {

            printf("%d",x[i]);

        }

        printf("\n");

    }

    return 0;

}


 

0.0分

0 人评分

  评论区

  • «
  • »