发布网友 发布时间:2024-10-24 03:28
共5个回答
热心网友 时间:2024-11-06 20:00
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 20:01
自己实现吧,用数组
热心网友 时间:2024-11-06 20:03
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 20:05
肯定有模板的
热心网友 时间:2024-11-06 19:59
不会