H2430819100


私信TA

用户名:dotcpp0794292

访问量:547

签 名:

东风吹破少年事,从此再无赤子心

等  级
排  名 1020
经  验 3316
参赛次数 1
文章发表 53
年  龄 0
在职情况 学生
学  校 贺州学院
专  业 软件工程

  自我简介:

解题思路:

写了很久,要注意前导0和十进制的运算
注意事项:

参考代码:

#include<stdio.h>

#include<string.h>

int main()

{

    char arr[201]={'\0'},brr[201]={'\0'};    //存字符的数组

    int drr[201]={0},frr[201]={0};    //存整数的字符

    int i,j;

    scanf("%s %s",arr,brr);    //输入字符

    int len1=strlen(arr);    //计算字符长度

    int len2=strlen(brr);    //计算字符长度

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

    {

       drr[i++]=arr[j--]-'0';    //转换字符为整数,存进drr中

    }

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

    {

       frr[i++]=brr[j--]-'0';    //转化字符为整数,存进frr中

    }

    int k=0;

   while(k<=200)    //大整数加法

   {

       drr[k]+=frr[k];

       if(drr[k]>=10)

       {

           drr[k]%=10;    //写十进制,例如13%10=3,该为存3,而下一位就+1

           drr[k+1]++;

       }

       k++;

   }

   int t=0;    //用来记录0的位置

   i=0;

   for(i=200;i>=0;i--)    //前导0的计算

   {

       if(drr[i]!=0)

       {

           t=i;

           break;

       }

   }

   if(i==-1)    //字符都是0

   {

       printf("0\n");

   }

   else

   {

       for(i=t;i>=0;i--)    //从记录的前导0位置开始--,倒序输出(因为要最高为先输出),前导0就是要避免最高位为0

       {

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

       }

   }

    return 0;

}


 

0.0分

2 人评分

  评论区

  • «
  • »