【发布时间】:2016-11-08 16:15:37
【问题描述】:
如果之前有人问过这个问题,您好,很抱歉,但我正在研究约瑟夫斯问题,这是我编写的代码。
#include<stdio.h>
#include<cs50.h>
#include<math.h>
int main(void)
{
printf("Number of people: ");
float f=GetFloat();
const int a=pow(2,floor(log(f)/log(2)));
float c= 2*(f-2^a)+1;
printf("%f\n", c);
}
当我尝试编译它时,它给了我这个错误信息。
clang -ggdb3 -O0 -std=c99 -Wall -Werror Josephus.c -lcs50 -lm -o Josephus
Josephus.c:11:20: error: invalid operands to binary
expression ('float' and 'float')
float c= 2*(f-2^a)+1;
~~~^~
我试图在代码中编写的等式是 c = 2(f – 2^a) + 1 其中“c”是我要查找的数字,“f”是人数,“a”是小于 f 的 2 的最大幂。
对于任何和所有语法错误以及我对该主题缺乏了解,我很抱歉,我是编程新手。干杯!
【问题讨论】:
标签: c++ constants cs50 operation