#include <stdio.h>
#include<string.h>
#include <stdlib.h>
#define MAX 101
void bigDataAdd(char a[],char b[]);
int main()
{
char a[MAX] = {0};
char b[MAX] = {0};
gets(a);
gets(b);
bigDataAdd(a,b);
return 0;
}
void bigDataAdd(char a[],char b[])
{
int length = 0;
int m = 0;
char sum[MAX+1];
char tempA[MAX] = {0};
char tempB[MAX] = {0};
int jin = 0;
int lengthA = strlen(a);
int lengthB = strlen(b);
length = lengthA > lengthB ? lengthA : lengthB;
// 将字符串翻转
for(m=0;m<length;m++)
{
if (lengthA == length) {
tempA[m] = a[lengthA-1-m];
if (m < lengthB) {
tempB[m] = b[lengthB-1-m];
} else {
tempB[m] = '0';
}
} else if (lengthB == length) {
tempB[m] = b[lengthB-1-m];
if (m < lengthA) {
tempA[m] = a[lengthA-1-m];
} else {
tempA[m] = '0';
}
}
}
// 相加
for(m=0;m<length;m++)
{
sum[m] = (tempA[m] - '0' + (tempB[m] - '0') + jin) % 10 + '0';
jin = (tempA[m] - '0' + (tempB[m] - '0') + jin) / 10;
}
for(m=0;m<length;m++)
{
printf("%c",sum[length - 1 - m]);
}
}
参考:http://www.voidcn.com/article/p-xjozelbj-vu.html
http://www.cnblogs.com/Lyush/archive/2011/08/14/2137721.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。