Rumah >pembangunan bahagian belakang >C++ >Mengapakah Operator `^` Kod C Saya Tidak Mengira Kuasa?

Mengapakah Operator `^` Kod C Saya Tidak Mengira Kuasa?

Susan Sarandon
Susan Sarandonasal
2024-12-24 22:00:24995semak imbas

Why Isn't My C Code's `^` Operator Calculating Powers?

Mengapa operator kuasa saya (^) tidak berfungsi?

Dalam kod C yang disediakan, operator ^ tidak berfungsi sebagai kuasa operator kerana dalam C/C , ^ mewakili operasi XOR bitwise, bukan eksponen.

Matlamat kod yang diberikan adalah untuk mengira jumlah bagi kuasa nombor a dinaikkan kepada setiap nilai daripada 1 hingga 4. Walau bagaimanapun, menggunakan operator ^ hanya akan melaksanakan operasi XOR bitwise, bukan eksponen.

Untuk melaksanakan eksponen, anda harus menggunakan fungsi pow() daripada perpustakaan math.h. Sintaks untuk pow() ialah:

double pow(double base, double exponent);

Berikut ialah versi pembetulan kod menggunakan pow():

#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);
}

Dalam kod yang disemak ini:

  • Fungsi pow() digunakan untuk mengira kuasa yang dinaikkan kepada i.
  • Hasilnya dibuang ke int kerana pow() mengembalikan dua kali ganda.
  • Penghantaran salah satu hujah untuk menggandakan membantu mengelakkan isu limpahan integer yang berpotensi.

Dengan perubahan ini, kod akan mengira dengan betul dan cetak jumlah kuasa yang dinaikkan kepada setiap nilai daripada 1 hingga 4.

Atas ialah kandungan terperinci Mengapakah Operator `^` Kod C Saya Tidak Mengira Kuasa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn