搜索

C语言实现两个数的加法,这两个数可能非常大,有一千位或一万位等,用正常...

发布网友 发布时间:2024-10-24 03:28

我来回答

5个回答

热心网友 时间:2024-11-06 19:31

void Add(char *str1, char *str2, char *str3)
{// str3 = str1 + str2;
int i, j, i1, i2, tmp, carry;
int len1 = strlen(str1), len2 = strlen(str2);
char ch;
i1 = len1-1; i2 = len2-1;
j = carry = 0;
for( ; i1 >= 0 && i2 >= 0; ++j, --i1, --i2 ){
tmp = str1[i1]-'0'+str2[i2]-'0'+carry;
carry = tmp/10;
str3[j] = tmp%10+'0';
}
while( i1 >= 0 ){
tmp = str1[i1--]-'0'+carry;
carry = tmp/10;
str3[j++] = tmp%10+'0';
}
while( i2 >= 0 ){
tmp = str2[i2--]-'0'+carry;
carry = tmp/10;
str3[j++] = tmp%10+'0';
}
if( carry ) str3[j++] = carry+'0';
str3[j] = '\0';
for( i=0, --j; i < j; ++i, --j ){
ch = str3[i]; str3[i] = str3[j]; str3[j] = ch;
}
}
是数组实现的, 把str1 和str2是你要相加的两个数, str3是用来放加后的结果
注意:你读入时,用数组读入 ,且这个函数只能处理整数,小数不行

热心网友 时间:2024-11-06 19:31

肯定有模板的

热心网友 时间:2024-11-06 19:33

不会

热心网友 时间:2024-11-06 19:32

http://baike.baidu.com/view/3761318.htm 动态数组
假设2个数组为char a[c],b[d],结果为e[f]
main()
{int i,j;
for(i=c;i>=1;i--){
j=d+c-i;
e[max(i,j)]=a[i]+b[j]-48;
}
//余下的自己设计
}

热心网友 时间:2024-11-06 19:36

自己实现吧,用数组
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top