cs50积分循环问题分号
cs50 credit loop problem to divide the number
我在CS50信用问题上。我试图找到该号码的倒数第二位。例如4003600000000014
。应该是4,0,6,0,0,0,0,1
。
我对这个循环感到困惑。当我使用数字例如 1,2,...15
替换 2i-1
时,它起作用了。但是在这个循环中,它不起作用。它给了我 6,6,6,6,6,6,6,6
感谢您的帮助!
`
long answer=get_long("Number: ");
int i;
long a;
for (i=1; i<9 ; i++)
{
a= fmod((answer / (pow(10,2i-1))),10);
printf("%ld\n",a)
}
`
表达式 2i-1
与您想象的不一样。
2i
其实是一个复数常量。当您随后将复数值 2i-1
传递给 pow
时,虚部被截断,传递的实际值为 -1
.
两个数/变量相乘时,必须使用*
运算符:
2*i-1
我在CS50信用问题上。我试图找到该号码的倒数第二位。例如4003600000000014
。应该是4,0,6,0,0,0,0,1
。
我对这个循环感到困惑。当我使用数字例如 1,2,...15
替换 2i-1
时,它起作用了。但是在这个循环中,它不起作用。它给了我 6,6,6,6,6,6,6,6
感谢您的帮助!
`
long answer=get_long("Number: ");
int i;
long a;
for (i=1; i<9 ; i++)
{
a= fmod((answer / (pow(10,2i-1))),10);
printf("%ld\n",a)
}
`
表达式 2i-1
与您想象的不一样。
2i
其实是一个复数常量。当您随后将复数值 2i-1
传递给 pow
时,虚部被截断,传递的实际值为 -1
.
两个数/变量相乘时,必须使用*
运算符:
2*i-1