當前位置:編程學習大全網 - 編程語言 - 請問用C語言怎麽可以實現對數和指數運算?

請問用C語言怎麽可以實現對數和指數運算?

//////////////////////////////////////////////////////////////////////

//

// 對數的例子//

// <filename> : main.cpp

//

// Functions:

//

// exp, log, log10

//////////////////////////////////////////////////////////////////////

#include <iostream> // for i/o functions

#include <valarray> // for valarray

#include <math.h> // for exp(), log(), and log10()

using namespace std;

#define ARRAY_SIZE 3 // array size

typedef valarray<double> DB_VARRAY;

void main()

{

// Set val_array to contain values 1, 10, 100 for the following test.

DB_VARRAY val_array(ARRAY_SIZE);

for (int i = 0; i < ARRAY_SIZE; i++)

val_array[i] = pow(10, i);

// Display the size of val_array.

cout << "Size of val_array = " << val_array.size() << "\r\n";

// Display the content of val_array before calling exp, log, and

// log10 functions.

cout << "The values in val_array:\r\n";

for (i = 0; i < ARRAY_SIZE; i++)

cout << val_array[i] << " ";

cout << "\r\n\r\n";

// rvalue_array to hold the return value from calling the sqrt() and

// pow() functions.

DB_VARRAY rvalue_array;

// ----------------------------------------------------------------

// exp() - display the content of rvalue_array

// ----------------------------------------------------------------

rvalue_array = exp(val_array);

cout << "The result after calling exp():\r\n";

for (i = 0; i < ARRAY_SIZE; i++)

cout << rvalue_array[i] << " ";

cout << "\r\n\r\n";

// ----------------------------------------------------------------

// log() - display the content of rvalue_array

// ----------------------------------------------------------------

rvalue_array = log(val_array);

cout << "The result after calling log():\r\n";

for (i = 0; i < ARRAY_SIZE; i++)

cout << rvalue_array[i] << " ";

cout << "\r\n\r\n";

// ----------------------------------------------------------------

// log10() - display the content of rvalue_array

// ----------------------------------------------------------------

rvalue_array = log10(val_array);

cout << "The result after calling log10():\r\n";

for (i = 0; i < ARRAY_SIZE; i++)

cout << rvalue_array[i] << " ";

cout << "\r\n\r\n";

}

Program Output is:

Size of val_array = 3

The values in val_array:

1 10 100

The result after calling exp():

2.71828 22026.5 2.68812e+043

The result after calling log():

0 2.30259 4.60517

The result after calling log10():

0 1 2

//////////////////////////////////////////////////////////////////////

//

// 指數的例子//

// main.cpp : Illustrates the use of STL sqrt() and pow() functions.

//

// Functions:

//

// sqrt, pow

//////////////////////////////////////////////////////////////////////

#include <iostream> // for i/o functions

#include <valarray> // for valarray

#include <cmath> // for sqrt() and pow()

using namespace std ;

#define ARRAY_SIZE 3 // array size

void main()

{

// Set val_array to contain values 1, 4, 9 for the following test

valarray<double> val_array(ARRAY_SIZE);

for (int i = 0; i < ARRAY_SIZE; i++)

val_array[i] = (i+1) * (i+1);

// Display the size of val_array

cout << "Size of val_array = " << val_array.size() << endl;

// Display the values of val_array before calling sqrt() and pow().

cout << "The values in val_array:" << endl;

for (i = 0; i < ARRAY_SIZE; i++)

cout << val_array[i] << " ";

cout << endl << endl;

// Initialize rev_valarray that is the reverse of val_array.

valarray<double> rev_valarray(ARRAY_SIZE);

for (i = 0; i < ARRAY_SIZE; i++)

rev_valarray[i] = val_array[ARRAY_SIZE - i - 1];

// Display the size of rev_valarray.

cout << "Size of rev_valarray = " << rev_valarray.size() << endl;

// Display the values of rev_valarray.

cout << "The values in rev_valarray:" << endl;

for (i = 0; i < ARRAY_SIZE; i++)

cout << rev_valarray[i] << " ";

cout << endl << endl;

// rvalue_array to hold the return value from calling the sqrt() and

// pow() functions.

valarray<double> rvalue_array;

// ----------------------------------------------------------------

// sqrt() - display the content of rvalue_array

// ----------------------------------------------------------------

// Display the result of val_array after calling sqrt().

rvalue_array = sqrt(val_array);

cout << "The result of val_array after calling sqrt():" << endl;

for (i = 0; i < ARRAY_SIZE; i++)

cout << rvalue_array[i] << " ";

cout << endl << endl;

// ----------------------------------------------------------------

// pow() - display the content of rvalue_array

// ----------------------------------------------------------------

// This template function returns an object of class valarray<T>,

// each of whose elements at I is x[I] raised to the power of y[I].

rvalue_array = pow(val_array, rev_valarray);

cout << "The result after calling pow(val_array, rev_valarray):"

<< endl;

for (i = 0; i < ARRAY_SIZE; i++)

cout << rvalue_array[i] << " ";

cout << endl << endl;

// This template function stores in element I x[I] raised to the

// power of y, where y=2.0.

rvalue_array = pow(val_array, 2.0);

cout << "The result after calling pow(val_array, 2.0):" << endl;

for (i = 0; i < ARRAY_SIZE; i++)

cout << rvalue_array[i] << " ";

cout << endl << endl;

// This template function stores in element I x raised to the

// y[I] power, where x=2.0.

rvalue_array = pow(2.0, val_array);

cout << "The result after calling pow(2.0, val_array):" << endl;

for (i = 0; i < ARRAY_SIZE; i++)

cout << rvalue_array[i] << " ";

cout << endl << endl;

}

Program Output is:

Size of val_array = 3

The values in val_array:

1 4 9

Size of rev_valarray = 3

The values in rev_valarray:

9 4 1

The result of val_array after calling sqrt():

1 2 3

The result after calling pow(val_array, rev_valarray):

1 256 9

The result after calling pow(val_array, 2.0):

1 16 81

The result after calling pow(2.0, val_array):

2 16 512

以上例子全是MSDN的標準例子 , 安裝MSDN吧, 這種問題迎刃而解

  • 上一篇:怎樣把Keil uVision4軟體改為中文版
  • 下一篇:電子專業技術工作總結
  • copyright 2024編程學習大全網