Rumah  >  Artikel  >  Apakah pengendali akar dalam bahasa C?

Apakah pengendali akar dalam bahasa C?

青灯夜游
青灯夜游asal
2023-03-06 14:39:2640277semak imbas

Dalam bahasa C, tiada operator root Fungsi terbina dalam "sqrt()" digunakan untuk membuka root, dan sintaks "sqrt(value x)" digunakan sebagai contoh, ". sqrt(4)", Hanya lakukan operasi punca kuasa dua pada 4, dan hasilnya ialah 2. sqrt() ialah fungsi operasi akar terbina dalam bahasa C Hasil operasinya ialah punca kuasa dua aritmetik bagi fungsi pembolehubah;

Apakah pengendali akar dalam bahasa C?

Persekitaran pengendalian tutorial ini: sistem Windows 7, versi c99, komputer Dell G3.

Dalam bahasa C, tiada operator root Fungsi terbina dalam "sqrt()" digunakan untuk membuka root.

Fungsi sqrt() bahasa C

Sqrt dalam bahasa C bermaksud fungsi punca kuasa dua, yang mengira punca kuasa dua sesuatu nombor nyata bukan negatif.

sqrt() ialah fungsi operasi akar terbina dalam bahasa C, dan hasil operasinya ialah punca kuasa dua aritmetik bagi pembolehubah fungsi.

Fungsi sqrt() tidak boleh beroperasi pada nilai negatif atau mengeluarkan hasil khayalan.

Sintaks:

double sqrt(double x)

Nilai pulangan:

  • Fungsi ini mengembalikan punca kuasa dua bagi x.

Penggunaan fungsi sqrt()

Tambahkan #include15dfdae10d7c0c52b8c9b87fff3f31d0 pada fail pengepala dan kemudian gunakan sqrt Definisi berganda

#include<math.h>
#include<stdio.h>
 
int main(void)
{
    printf("%lf",sqrt(4));
 
    return 0;
}

Kita tahu bahawa hasil nombor punca 4 ialah 2, dan hasil keluaran juga harus 2. Mari kita lihat sama ada hasil keluaran sebenar adalah konsisten dengan hasil keluaran ideal kita.

Hasil keluaran:

2.000000

Soalan:

S1: "Adakah jenis parameter fungsi sqrt bukan titik terapung berketepatan dua kali? Mengapakah ia dalam Parameter fungsi sqrt dalam contoh di atas ialah integer, bukankah ia nombor titik terapung Adakah terdapat sebarang masalah dalam menghantar parameter seperti ini? soalan ini untuk pembaca: "Adalah betul untuk menghantar nombor titik terapung ke fungsi sqrt, dan tidak ada yang salah dengannya. Sudah tentu, tiada masalah dengan menghantar integer ke fungsi sqrt, kerana menghantar pembolehubah integer dalam fungsi sqrt secara automatik akan ditukar kepada jenis titik terapung berketepatan ganda Kemudian kita Bolehkah kita mengelakkan proses menukar parameter daripada integer kepada titik terapung ketepatan berganda Sudah tentu kita boleh, tetapi kita perlu membuat pengubahsuaian kecil kod di atas:

Perubahan ini boleh mengelakkannya Parameter ialah proses menukar jenis integer kepada jenis titik terapung, dan kod menjadi lebih tepat
#include<math.h>
#include<stdio.h>
 
int main(void)
{
    printf("%lf",sqrt(4.0));
 
    return 0;
}

S2: "Parameter pertama dalam fungsi printf ialah rentetan pelik ("%lf"). , mengapa rentetan pelik itu tidak dikeluarkan? Ia digantikan dengan nombor”

R2: Ini adalah soalan yang sangat bagus jika anda hanya fikir ia hanya rentetan yang pelik, tidak mengapa, kerana jika ini kali pertama anda, anda pasti akan berasa Pelik, ini adalah! sangat biasa. Tetapi "%lf" bukan rentetan yang pelik, tetapi pemegang tempat Kami hampir tidak boleh melakukannya apabila menulis program C Anda boleh memahaminya dengan cara ini: "printf ialah 'output terformat' pemegang tempat ini sebagai "diformat" dalam "output terformat", yang boleh mengeluarkan parameter seterusnya mengikut kandungan pemegang tempat Contohnya, di bawah fungsi printf yang sama, pemegang tempat pertama Output aksara ialah kandungan parameter kedua, yang kedua pemegang tempat mengeluarkan kandungan parameter ketiga, dan seterusnya Cara untuk membezakan sama ada ia adalah pemegang tempat juga sangat mudah, lihat di hadapan rentetan segmen Sama ada "%" (tanda peratus) muncul, jika ya, ia bermakna bahawa ini adalah pemegang tempat, jika tidak, ini bermakna ia bukan pemegang tempat Dalam bahasa C, ruang letak bukan sahaja "%lf", tetapi juga "%lf". ruang letak yang digunakan dalam bahasa C Format input dan output yang sepadan dengan setiap pemegang tempat adalah berbeza.

%d Dalam bentuk Input dan output integer %f Input dan output dalam bentuk titik terapung ketepatan tunggal %lfInput dan output dalam bentuk jenis titik terapung berketepatan dua %s Input dan output dalam bentuk rentetan

讨论:

为了使读者更好地理解,我们可以对上例的代码进行一个粗略的翻译(这里作者将上例的代码“搬运”到了下面当中,这样做的原因是为了避免读者回看上文)。

#include<math.h>
#include<stdio.h>
 
int main(void)
{
    printf("%lf",sqrt(4.0));
 
    return 0;
}

翻译:在程序中先包含两个头文件,它们分别是:math.h(数学头文件)与stdio.h(标准输入输出头文件)。随后我们需要编写main函数,”main“函数的数据类型是int,参数的数据类型是“void”。为什么要编写“main”这个函数呢?因为它是整个C程序的入口,在main函数的函数体内有两条语句,第一条是“printf("%lf",sqrt(4.0));”,它翻译过来的意思是:“以双精度浮点型的形式对sqrt函数的返回值进行输出(注意:当一个函数作为另一个函数的参数时,程序会先将一个函数的返回值计算出来随后再传递给另一个函数的参数)。”最后一条语句是“return 0;”,函数是必须需要一个返回值的,但void类型除外,我们的这个main函数的数据类型是int,并不是void,所以main函数需要一个返回值,虽然在多数编译器是省略main函数的返回值的,但即便如此,最好将返回值加上,这是个良好的习惯!。

(注意:不要将main函数的参数列表中的void看成是main函数的数据类型)

【相关推荐:C语言视频教程编程教学

Atas ialah kandungan terperinci Apakah pengendali akar dalam bahasa C?. 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
Artikel sebelumnya:Apakah frekuensi CPU?Artikel seterusnya:Apakah frekuensi CPU?