黑马程序员技术交流社区
标题:
【上海校区】字符数组实现两大数相加
[打印本页]
作者:
梦缠绕的时候
时间:
2018-11-19 09:48
标题:
【上海校区】字符数组实现两大数相加
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
版权声明:本文为博主原创文章,转载请附上博文链接!
作者:
不二晨
时间:
2018-11-21 17:09
作者:
梦缠绕的时候
时间:
2018-11-22 17:00
作者:
魔都黑马少年梦
时间:
2018-11-22 17:07
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2