Power Operator가 예상대로 작동하지 않는 이유는 무엇입니까?
제공된 C 코드에서 "^"를 사용하려고 시도합니다. 전력 작업을 수행하는 연산자입니다. 그러나 "^"는 C/C에서 거듭제곱 연산자 역할을 하지 않기 때문에 출력이 올바르지 않습니다. 대신 비트별 XOR 연산자로 정의됩니다.
이 코드는 입력된 숫자 "a"의 거듭제곱의 합을 1부터 4까지 계산하려고 합니다. 이를 올바르게 수행하려면 pow() 인수 중 하나를 double로 캐스팅해야 하는 함수를 활용해야 합니다. 수정된 코드는 다음과 같습니다.
#include <stdio.h> void main(void) { int a; double result; int sum = 0; printf("Enter a number: "); scanf("%d", &a); for( int i = 1; i <= 4; i++ ) { result = (int) pow((double) a,i); sum += result; } printf("%d\n", sum); }
또한 C99부터 powf() 및 powl() 함수가 각각 float 및 long double 인수를 지원하기 위해 도입되었다는 점에 주목할 가치가 있습니다.
위 내용은 내 C 코드의 '^' 연산자가 검정력을 올바르게 계산하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!