C实现两个大数相加
2016-03-07 12:28
357 查看
#include <stdio.h> #include <string.h> int main() { char snum1[1024], snum2[1024], sop1[1024]="0", sop2[1024]; int len, len1, len2, opsign = 0; printf( "输入两个操作数:\n" ); scanf( "%s\n%s", snum1, snum2 ); len1 = strlen( snum1 ); len2 = strlen( snum2 ); if( len1 >= len2 ) { strcat( sop1, snum1 ); strcpy( sop2, snum2 ); len = len1 + 1; } else { strcat( sop1, snum2 ); strcpy( sop2, snum1 ); len = len2 + 1; } for( int i = 0; i != len; i++ ) { int k = sop1[strlen(sop1)-1-i] - '0'; int m; if( i >= strlen( sop2 ) ) m=0; else m = sop2[strlen(sop2)-1-i] - '0'; if( opsign ) k++; int n = k + m; if( n >= 10 ) { opsign = 1; n = n - 10; } else { opsign = 0; } sop1[strlen(sop1)-1-i] = n + '0'; } char* p=sop1; if( sop1[0] == '0' ) printf( "两个操作数之和为:%s", ++p ); else printf( "两个操作数之和为:%s", p ); getchar(); getchar(); return 0; }
相关文章推荐
- [BZOJ2730][HNOI2012]矿场搭建
- 用distinct在MySQL中查询多条不重复记录值
- nyoj--116 士兵杀敌(二)(树状数组)
- 关于PROPAGATION_REQUIRES_NEW和PROPAGATION_NESTED事务的比较
- 网络IO之阻塞、非阻塞、同步、异步总结
- 利用链表来实现对员工信息的存储,排序,删除,插入
- 前端开发面试题
- JDBC简单例子(MySQL)
- 如何透彻的掌握一门机器学习算法
- 2015年最佳的12个 CSS 开发工具推荐
- 抽样估计
- Leet Code OJ 172. Factorial Trailing Zeroes [Difficulty: Easy]
- SPRING IN ACTION 第4版笔记-第九章Securing web applications-003-把用户数据存在数据库
- 《从零开始学Swift》学习笔记(Day58)—— Swift编码规范之变量或常量声明规范
- 2015蓝桥杯 三羊献瑞(回溯法dfs)
- 【Software Project Management Homework 1】--3013218086--
- [转]IBInspectable / IBDesignable
- CS域和PS域
- Android之史上最强ListView优化方案
- 配置hadoop集群问题