解题思路:

写了很久,要注意前导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.0分

2 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论