Cplusplus 简明教程

Numbers in C++

通常,当我们使用数字时,我们会使用基本数据类型,如 int、short、long、float 和 double 等。在讨论 C++ 数据类型时,已经解释了数字数据类型、它们可能的取值和数字范围。

Normally, when we work with Numbers, we use primitive data types such as int, short, long, float and double, etc. The number data types, their possible values and number ranges have been explained while discussing C++ Data Types.

Defining Numbers in C++

你已经在前面章节给出的各种示例中定义了数字。以下是一个合示例子来说明在 C++ 中定义各种类型的数字−

You have already defined numbers in various examples given in previous chapters. Here is another consolidated example to define various types of numbers in C++ −

#include <iostream>
using namespace std;

int main () {
   // number definition:
   short  s;
   int    i;
   long   l;
   float  f;
   double d;

   // number assignments;
   s = 10;
   i = 1000;
   l = 1000000;
   f = 230.47;
   d = 30949.374;

   // number printing;
   cout << "short  s :" << s << endl;
   cout << "int    i :" << i << endl;
   cout << "long   l :" << l << endl;
   cout << "float  f :" << f << endl;
   cout << "double d :" << d << endl;

   return 0;
}

编译并执行上述代码后,将产生以下结果 −

When the above code is compiled and executed, it produces the following result −

short  s :10
int    i :1000
long   l :1000000
float  f :230.47
double d :30949.4

Math Operations in C++

除了你可以创建的各种函数外,C 语言还包括一些你可以使用的有用函数。这些函数可在标准 C 和 C 库中获得,称为 built-in 函数。这些是你可以在你的程序中包含然后使用的函数。

In addition to the various functions you can create, C also includes some useful functions you can use. These functions are available in standard C and C libraries and called built-in functions. These are functions that can be included in your program and then use.

C 语言有一套丰富的数学运算,可以对各种数字执行这些运算。下表列出了 C 语言中一些有用的内置数学函数。

C has a rich set of mathematical operations, which can be performed on various numbers. Following table lists down some useful built-in mathematical functions available in C.

要使用这些函数,你需要包含数学头文件 <cmath>

To utilize these functions you need to include the math header file <cmath>.

Sr.No

Function & Purpose

1

double cos(double); This function takes an angle (as a double) and returns the cosine.

2

double sin(double); This function takes an angle (as a double) and returns the sine.

3

double tan(double); This function takes an angle (as a double) and returns the tangent.

4

double log(double); This function takes a number and returns the natural log of that number.

5

double pow(double, double); The first is a number you wish to raise and the second is the power you wish to raise it t

6

double hypot(double, double); If you pass this function the length of two sides of a right triangle, it will return you the length of the hypotenuse.

7

double sqrt(double); You pass this function a number and it gives you the square root.

8

int abs(int); This function returns the absolute value of an integer that is passed to it.

9

double fabs(double); This function returns the absolute value of any decimal number passed to it.

10

double floor(double); Finds the integer which is less than or equal to the argument passed to it.

以下是演示几种数学运算的简单示例 −

Following is a simple example to show few of the mathematical operations −

#include <iostream>
#include <cmath>
using namespace std;

int main () {
   // number definition:
   short  s = 10;
   int    i = -1000;
   long   l = 100000;
   float  f = 230.47;
   double d = 200.374;

   // mathematical operations;
   cout << "sin(d) :" << sin(d) << endl;
   cout << "abs(i)  :" << abs(i) << endl;
   cout << "floor(d) :" << floor(d) << endl;
   cout << "sqrt(f) :" << sqrt(f) << endl;
   cout << "pow( d, 2) :" << pow(d, 2) << endl;

   return 0;
}

编译并执行上述代码后,将产生以下结果 −

When the above code is compiled and executed, it produces the following result −

sign(d)     :-0.634939
abs(i)      :1000
floor(d)    :200
sqrt(f)     :15.1812
pow( d, 2 ) :40149.7

Random Numbers in C++

在许多情况下,你可能希望生成一个随机数。实际上,你需要了解生成随机数的两个函数。第一个是 rand() ,此函数只会返回伪随机数。解决此问题的方法是先调用 srand() 函数。

There are many cases where you will wish to generate a random number. There are actually two functions you will need to know about random number generation. The first is rand(), this function will only return a pseudo random number. The way to fix this is to first call the srand() function.

以下是生成几个随机数的简单示例。此示例利用 time() 函数获取系统时间的秒数,以随机播种 rand() 函数 −

Following is a simple example to generate few random numbers. This example makes use of time() function to get the number of seconds on your system time, to randomly seed the rand() function −

#include <iostream>
#include <ctime>
#include <cstdlib>

using namespace std;

int main () {
   int i,j;

   // set the seed
   srand( (unsigned)time( NULL ) );

   /* generate 10  random numbers. */
   for( i = 0; i < 10; i++ ) {
      // generate actual random number
      j = rand();
      cout <<" Random Number : " << j << endl;
   }

   return 0;
}

编译并执行上述代码后,将产生以下结果 −

When the above code is compiled and executed, it produces the following result −

Random Number : 1748144778
Random Number : 630873888
Random Number : 2134540646
Random Number : 219404170
Random Number : 902129458
Random Number : 920445370
Random Number : 1319072661
Random Number : 257938873
Random Number : 1256201101
Random Number : 580322989