Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 我想在多位数问题中求进位运算的个数_C - Fatal编程技术网

C 我想在多位数问题中求进位运算的个数

C 我想在多位数问题中求进位运算的个数,c,C,我没有通过我的代码获得正确的进位操作数 此代码从右到左查找进位运算,每当查找进位运算时返回(找到),,,让两个整数a=362175600 b=1479992559在第二、第三、第四、第七和第九位置有5个进位,因此,输出应为:-1找到,2找到,3找到,未找到,未找到,未找到,4找到,未找到,5找到,,找不到 #include<stdio.h> int main(){ int a,b,count,max,min,j,rem_max,rem_min; wh

我没有通过我的代码获得正确的进位操作数

此代码从右到左查找进位运算,每当查找进位运算时返回(找到),,,让两个整数a=362175600 b=1479992559在第二、第三、第四、第七和第九位置有5个进位,因此,输出应为:-1找到,2找到,3找到,未找到,未找到,未找到,4找到,未找到,5找到,,找不到

#include<stdio.h>
int main(){
        int a,b,count,max,min,j,rem_max,rem_min;

        while((scanf("%d%d",&a,&b))==2){

            if(a==0 && b==0){
                break;
            }
            else{
                if(a > b){
                    max=a;
                    min=b;
                }
                else if(b > a){
                    min=a;
                    max=b;
                }
                else{
                    max=a;
                    min=b;
                }


                count=0;
                j=1;

                while(max!=0){
                    rem_max=max%10;
                    rem_min=min%10;

                    if((rem_max+rem_min)>9){
                        count++;

                        printf("%d found\n",j);
                        max=(max/10)+1;
                        min=min/10;
                        j++;
                    }
                    else if((rem_max+rem_min)<9){

                        max=max/10;
                        min=min/10;

                        printf("not found\n");
                    }
                    else{
                        max=max/10;
                        min=min/10;

                    }

                }
                printf("-----------------------\n");
                printf("%d\n",count);

            }
        }
        return 0;
    }
#包括
int main(){
int a,b,count,max,min,j,rem_max,rem_min;
而((scanf(“%d%d”、&a和&b))==2){
如果(a==0&&b==0){
打破
}
否则{
如果(a>b){
max=a;
min=b;
}
否则,如果(b>a){
min=a;
max=b;
}
否则{
max=a;
min=b;
}
计数=0;
j=1;
而(最大!=0){
rem_max=最大值%10;
rem_min=最小值%10;
如果((rem_最大值+rem_最小值)>9){
计数++;
printf(“找到%d\n”,j);
最大值=(最大值/10)+1;
min=min/10;
j++;
}

否则,如果((rem_max+rem_min)输入a=36217560b=1479992559,则语句
max=(max/10)+1;
会导致14799变为14800,并产生不良结果。
使用单独的
进位变量将纠正此问题

#include<stdio.h>

int main ( void) {
    int a = 1,b = 1,count,max,min,j,rem_max,rem_min;
    int carry = 0;

    while ( a != 0 && b != 0) {
        scanf ( "%d%d", &a, &b);
        max = b;
        min = a;
        if ( a > b) {
            max = a;
            min = b;
        }

        count = 0;
        j = 0;

        while ( max != 0) {
            rem_max = max % 10;
            rem_min = min % 10;
            max /= 10;
            min /= 10;

            if ( ( rem_max + rem_min + carry) > 9) {//also add carry
                count++;
                carry = 1;//set carry
                printf("%d found\n",j);
                j++;
            }
            else {
                carry = 0;//un set carry
                printf ( "not found\n");
            }
        }
        printf ( "-----------------------\n");
        printf ( "%d\n", count);
    }
    return 0;
}
#包括
内部主(空){
int a=1,b=1,计数,最大,最小,j,rem_max,rem_min;
整数进位=0;
而(a!=0&&b!=0){
scanf(“%d%d”、&a和&b);
max=b;
min=a;
如果(a>b){
max=a;
min=b;
}
计数=0;
j=0;
而(最大!=0){
rem_max=最大值%10;
rem_min=最小值%10;
最大/=10;
最小/=10;
如果((rem_max+rem_min+进位)>9){//也添加进位
计数++;
进位=1;//设置进位
printf(“找到%d\n”,j);
j++;
}
否则{
进位=0;//取消设置进位
printf(“未找到”);
}
}
printf(“--------------------------\n”);
printf(“%d\n”,计数);
}
返回0;
}

读取并比较未初始化的变量。例如,此处
而(a!=0&&b!=0)
忽略
scanf()的返回值
。请详细解释您的程序应该执行的操作。给出具有所需输出和当前输出的输入示例。所有注释仍然有效。尤其是第一条注释。@SunjareeIbnZulfiker有关问题的澄清,请阅读以下内容:并接受注释。