华驼教育网
发布网友 发布时间:40分钟前
共2个回答
热心网友 时间:1分钟前
要实现任意大小两个整数相加,那么就不能存在溢出情况。所以无法使用任何系统类型,唯一的方式是用数组模拟整数存储,并自行实现加法操作算法。需要注意以下几点:1大数如何存储及输出;2计算时进位的处理;3两个计算数长度不同时的处理;4当达到最高位仍有进位的处理,即结果的长度大于任意一个操作数。以下是一个比较简单的代码:#include #include char s[101];int sum[101];int main() { int i, j; while (gets(s), strcmp(s, "0")) {//巧妙化解开多少个数组 算多少个数的和的局面 j=strlen(s); for (i=j-1; i>=0; --i) { sum[j-i-1]+=(s[i]-'0');//s[i]-'0'表示字符数字转化成int数字 倒序加到sum中 sum第一个数是s的最后一个数的和 } } j=101; while(!sum[j])--j; //重新赋值j 使j为目前sum的总位数 for (i=0;i=0; --i) { printf("%d", sum[i]); }}热心网友 时间:9分钟前
这样改: