A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

C实现

#include "stdio.h"                 //===================头文件
#include "string.h"

void main()                        //===================主函数
{
        int i,temp,m,n,bigger;        //=================变量定义
        int c1[100]={0},c2[100]={0};
        char a[100];
        char b[100];
       
        printf("请输入第一个大数,enter:");
        gets(a);
        printf("请输入第二个大数,enter:");
        gets(b);
        m=strlen(a);
    n=strlen(b);
        if(m>n)                        //==取长度大者长度分配储存空间
         bigger=m;
        else
         bigger=n;
       
        temp=bigger;                       //=======temp暂存bigger的值
       
        for(i=0;i<m;bigger--,i++)          //=======将字符串a颠倒存入c1中
       c1[bigger]=a[m-1-i]-'0';   
    bigger=temp;
    for(i=0;i<n;bigger--,i++)         //=======将字符串b颠倒存入c2中
       c2[bigger]=b[n-1-i]-'0';
                             
       
        for(i=temp;i>=0;i--)               //============c1与c2各项相加
        {
           c1=c1+c2;
             if(c1>=10)               //=============== 十进制进位
             {
                      c1-=10;
                 c1[i-1]++;
             }
        }
        printf("\t两数之和为:");
        if(c1[0]!=0)                  //考虑到首位,即上面c[temp]可能为0               
        {                               //====当为0时,下一位作为首位
                for(i=0;i<=temp;i++)            
                printf("%d",c1);               
        }
        else
        {
                for(i=1;i<=temp;i++)
                printf("%d",c1);
        }

}

---------------------
作者:yangsong95
来源:CSDN
原文:https://blog.csdn.net/yangsong95/article/details/83054363
版权声明:本文为博主原创文章,转载请附上博文链接!

3 个回复

倒序浏览
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马