日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

C語言中pow函數使用方法、注意事項以及常見報錯原因_C 語言

作者:東區東區! ? 更新時間: 2022-12-22 編程語言

1.首先使用pow函數必須要加頭文件 :

#include<math.h>

pow() 函數用來求 x 的 y 次冪(次方),x、y及函數值實際上為double型 ,其在使用中的原型為:double pow(double x, double y);?

注意,在某些特定的情況之下,pow函數的double類型可能會引起輸出結果的錯誤

2.pow()用來計算以x 為底的 y 次方值,然后將結果返回。

設返回值為 ret 則 ret = x^y

基本使用方法如下:

#include<stdio.h>
#include<math.h>
int main()
{
    int a,b,ret;
    scanf("%d,%d", &a, &b);
    ret = pow(a,b);    //求出a的b次方
    printf("%d", ret);
    return 0;
}

3.注意可能引起報錯的原因

  • 底數 a為負數并且指數 b?不是整數,將會導致 domain error 錯誤.
  • 底數 a和指數 b都是 0,會導致 domain error 錯誤.
  • 底數 a是 0,指數 b?為負數,會導致 domain error 或 pole error 錯誤.

所以在使用pow函數時,要注意底數和指數數字的正負,不要違反基本的數學常識 4.代碼實戰 輸入一個數,想把每位的數變成0或1。如果某一位是奇數,就把它變成1,如果是偶數,那么就把它變成0。最后得到的數是多少?

例如:輸入888, 輸出結果為0

? ? ? ? ? ? 輸入123,結果為101

#include<stdio.h>
#include<math.h>
int main()
{
    int a[i],  i, k;
    long long sum, n, c;
    scanf("%d", &n);
    while(n)
        {
            c = n % 10;
            n = n / 10;
            a[k++] = c;
        }
    for(i = 0; i < k; i++)
        {
            if(c % 2 == 0)
                {
                    a[i] = 0;
                }
            else
                {
                    a[i] = 1;
                }
        sum = sum + a[i] * pow(10, i);
        }
    printf("%d", sum);
    return 0;
}

可能導致錯誤的情況:

  • 如果底數 x 為負數并且指數 y 不是整數,將會導致 domain error 錯誤。
  • 如果底數 x 和指數 y 都是 0,可能會導致 domain error 錯誤,也可能沒有;這跟庫的實現有關。
  • 如果底數 x 是 0,指數 y 是負數,可能會導致 domain error 或 pole error 錯誤,也可能沒有;這跟庫的實現有關。
  • 如果返回值 z 太大或者太小,將會導致 range error 錯誤。

錯誤代碼:

如果發生 domain error 錯誤,那么全局變量 errno 將被設置為 ?EDOM;

如果發生 pole error 或 range error 錯誤,那么全局變量 errno 將被設置為 ERANGE。

Math.pow(底數,幾次方)

如:double a=2.0;

? ? double b=3.0;

double c=Math.pow(a,b);

就是2的三次方是多少;

c最終為8.0;

總結

原文鏈接:https://blog.csdn.net/weixin_59215611/article/details/124300310

欄目分類
最近更新