Bitwise XOR vs. Operator Power
Dalam C/C , operator ^ melakukan operasi XOR bitwise, bukan eksponen. Untuk mengira kuasa, anda harus menggunakan fungsi pow().
Isu Berkemungkinan dengan pow()
Jika anda cuba menggunakan pow() tetapi ia tidak berfungsi seperti yang dijangkakan, ia mungkin disebabkan oleh jenis hujah yang tidak sepadan. pow() mengambil argumen berganda secara lalai dan jika anda menghantar integer, anda mungkin perlu menghantarnya untuk menggandakan.
Contoh Pembetulan
Berikut ialah versi diubah suai bagi kod anda dengan jenis cast yang digunakan:
#include <stdio.h> #include <math.h> void main(void) { int a; int 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); }
Perhatikan bahawa fungsi pow() akan mengembalikan dua kali ganda, jadi saya juga hantarkan hasil ke int agar sepadan dengan kod asal.
Atas ialah kandungan terperinci C/C : Mengapa Menggunakan `pow()` Daripada `^` untuk Eksponen?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!