Home > Common Problem > What is the root operator in C language?

What is the root operator in C language?

青灯夜游
Release: 2023-03-06 14:39:26
Original
40391 people have browsed it

In the C language, there is no root operator. The built-in function "sqrt()" is used to open the root, and the syntax "sqrt (value x)" is used; for example, "sqrt(4)", Just perform the square root operation on 4, and the result is 2. sqrt() is a built-in root operation function in C language. Its operation result is the arithmetic square root of the function variable; this function can neither operate negative values ​​nor output imaginary results.

What is the root operator in C language?

The operating environment of this tutorial: windows7 system, c99 version, Dell G3 computer.

In the C language, there is no root operator. The built-in function "sqrt()" is used to open the root.

c language sqrt() function

In C language, sqrt means the square root function, which calculates the square root of a non-negative real number.

sqrt() is the built-in root operation function of C language, and its operation result is the arithmetic square root of the function variable.

The sqrt() function can neither operate on negative values ​​nor output imaginary results.

Syntax:

double sqrt(double x)
Copy after login

Return value:

  • ##This function returns the square root of x.

Usage of sqrt() function

Add #include to the header file and then use sqrt. You can use double definition

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

We know that the result of the root number 4 is 2, and the output result should also be 2. Let's see if the actual output result is consistent with our ideal output result.

Output result:

2.000000
Copy after login

Question:

Q1: "Is the type of the sqrt function parameter not a double-precision floating point type? Why is it mentioned above? In the example, the parameter of the sqrt function is an integer. Isn’t it a floating point number? Will there be any problems in passing parameters like this? "

R1: It is necessary to answer this question here for the readers who raised this question: "To It is completely correct for the sqrt function to pass floating point numbers, and there is nothing wrong at all. Of course, there is no problem with passing an integer to the sqrt function, because passing an integer variable within the sqrt function will automatically be converted to a double precision floating point type. So can we How to avoid the process of converting parameters from integer to double-precision floating point? Of course. But we need to make a small modification to the above code:

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

Such changes can avoid the parameter from being integer The process of converting to floating point type, and the code becomes more accurate.

Q2: "The first parameter in the printf function is the strange string ("%lf"). Why is that strange? No string output? It was replaced by a number."

R2: This is a very good question! If you just think that this is just a strange string, it seems right, because if it is your first contact, you will inevitably feel Strange, this is very normal. But "%lf" is not a strange string, but a placeholder. We can hardly do without it when we write C programs every day. You can understand it this way: "printf is 'formatted output' ' means, you can understand this placeholder as "formatted" in "formatted output", which can output subsequent parameters according to the content of the placeholder. For example, under the same printf function, the first placeholder The output of the character is the content of the second parameter, the second placeholder outputs the content of the third parameter, and so on. The way to distinguish whether it is a placeholder is also very simple, look at the front of a string Whether "%" (percent sign) appears? If so, it means that this is a placeholder. If not, it means that it is not a placeholder. In C language, placeholders are not only "%lf", but also There are many placeholders. The following table is the commonly used placeholders in C language. The input and output formats corresponding to each placeholder are different.

%dInput and output in the form of integer%fInput and output in the form of single-precision floating point%lfInput and output in the form of double-precision floating point %s

讨论:

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

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

翻译:在程序中先包含两个头文件,它们分别是: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语言视频教程编程教学

The above is the detailed content of What is the root operator in C language?. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
Input and output in the form of string Format input and output