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

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

Susan Sarandon
Lepaskan: 2024-12-24 22:00:24
asal
994 orang telah melayarinya

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);
Salin selepas log masuk

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);
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan