总而言之,我试图将一个特定的字符串(由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
无法弄清楚我在哪里犯了错误,我们将不胜感激。
对于此声明中的初学者