为什么下面的求和函数没有给我所需的总和,而是一个随机数?

问题描述 投票:-1回答:1

总而言之,我试图将一个特定的字符串(由8个数字组成)加起来,其中每个数字的加权方式如下:第一个数字乘以1,第二个数字乘以2,第三乘以2,第四乘以1,依此类推。如果乘法之一是2位数字,则它将这些数字加起来;这是一个解释它的例子:ID = 12345678那么总和为38,因为:1x1 = 1,2x2 = 4,3x1 = 3,4x2 = 8,5x1 = 5,6x2 = 12 =(1 + 2)= 3,7x1 = 7,8x2 = 16 =(1 + 6 = 7)和1 + 4 + 3 + 8 + 5 + 3 + 7 + 7 = 38。

这是我的代码的一部分

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int ID,oneDigit;
    int temporaryCheck;
    int sum=0;

        ID = scanf("%d", &ID);

        while(ID>0)
        {
            oneDigit=ID%10;
            ID=ID/10;
            temporaryCheck=0;
            temporaryCheck=oneDigit*2;
            if(temporaryCheck>9)
            {sum= sum +(temporaryCheck/10) + (temporaryCheck%10);}
            else {sum = sum +(oneDigit*2);}
            oneDigit=ID%10;
            sum=sum+oneDigit;
            ID=ID/10;
        }

        printf("sum=%d" , &sum);

无论输入什么字符串,我总是得到这个作为答案,而不是得到想要的答案:6422244

无法弄清楚我在哪里犯了错误,我们将不胜感激。

c loops for-loop numbers do-while
1个回答
0
投票

对于此声明中的初学者

© www.soinside.com 2019 - 2024. All rights reserved.