C语言如何保证两个两位数做加法,答案还是两位数

发布网友 发布时间: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分钟前

这样改:
case 1: //加法
do{
firstNumber = (int)rand() % 100;
secondNumber = (int)rand() % 100;
}while(firstNumber+secondNumber>=100);
printf("\n%d+%d=\n", firstNumber, secondNumber);
break;

或者这样改:
case 1: //加法
firstNumber = (int)rand() % 100;
secondNumber = (int)rand() % (100-firstNumber);
printf("\n%d+%d=\n", firstNumber, secondNumber);
break;
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top