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
版权声明:本文为博主原创文章,转载请附上博文链接!
|
|