2016-10-01 2 views
1

내가 C 코드당신은 어떻게 C

#include "stdafx.h" 
#include "math.h" 

int main() 
{ 
float i = 5.5; 
float score = 0; 

score=i/(i+(2^i)); 

} 

의이 간단한 조각을 실행하고 있습니다에 지수로 부동 소수점 숫자를 사용할 수있는 에디터는 플로트 내가 "필수 또는 범위가 지정되지 않은 열거 값이어야합니다"라고 말한다 , 그리고 내가 떠있는 것이 필수적입니다. c에서 float를 지수로 사용하려면 어떻게해야합니까?

score=i/(i+(2^i)); 

이것 :이

+3

은 '^'C의 지수되지 않는다와 같은 수학 함수를 사용 pow 해보세요! 결론을 내리기 전에 C에 대한 자습서를 읽어보십시오! – fuz

답변

5

변경

score = i/(i + pow(2, i)); 

^는 XOR 연산자, 당신은 pow(double base, double exponent) 필요; 함께 넣어 모든 :

#include "math.h" 
#include "stdio.h" 

int main() 
{ 
     float i = 5.5; 
     float score = 0; 

     score = i/(i + pow(2, i)); 
     printf("%f\n", score); 
     return 0; 
} 

출력 : njuffa가 언급 한 바와 같이

[email protected]:~$ gcc -Wall main.c -lm -o main 
[email protected]:~$ ./main 
0.108364 
의로

, 당신이 사용할 수있는 exp2(float n) :

계산이 주어진 전력 n으로 상승 .

과 대신 :

pow(2, i) 

사용 : C에서

exp2f(i) 
+0

감사합니다. –

+0

위대한 @ J.doo, * 대답을 수락하는 것을 잊지 마세요! – gsamaras

+0

아마도 성능과 정확도면에서'pow (2, i)'대신에'exp2f (i)'를 사용하는 것이 더 좋을 것입니다. – njuffa

1

2^i 

는 비트 단위 XOR 연산자 ^을 사용하여 발현이 지수 아니다 그러므로 그 충고는입니다.은 정수 유형이어야합니다.

score = i/(i + pow(2,i));