我在处理CS50的信贷问题。我在找这个数字的倒数第二位。例如,4003600000000014.It应为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)
} `
发布于 2019-02-23 12:25:43
表达式2i-1并不是您想的那样。
2i实际上是一个复数常量。然后,当您将复数值2i-1传递给pow时,虚部被截断,传递的实际值为-1。
将两个数字/变量相乘时,必须使用*运算符:
2*i-1https://stackoverflow.com/questions/54838212
复制相似问题