こんにちは、申し訳ありません、この質問は前に頼まれましたが、私はヨセフスの問題に取り組んでいると、これはI'veが書かれたコードである場合。エラー:バイナリ式に無効なオペランド「フロート」
#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)は、 "c" は "F" は、私が探している番号です+ 1 人々の数と "a"は、fより小さい2の大きなパワーです。
一切の文法の間違いやトピックの知識の私の不足のため申し訳ありませんが、私はプログラミングに新たなんです。乾杯!
HTTPの関連/デュープ: //stackoverflow.com/questions/4843304/why-is-my-power-operator-not-workingとhttp://stackoverflow.com/questions/845912/what-is-the-c-function-to-raise- a-number-to-a-power – NathanOliver