溫馨提示×

c語言程序sqrt函數怎樣處理異常

小樊
141
2024-10-18 06:27:17
欄目: 編程語言

在C語言中,通常不直接使用sqrt函數來處理異常,因為sqrt函數本身并不返回錯誤代碼。相反,它返回一個浮點數,表示輸入值的平方根。如果輸入值是負數,sqrt函數將返回一個特殊值(NaN,即非數字),這可以被視為一種異常情況。

要處理這種情況,你可以檢查sqrt函數的返回值,并在發現無效結果時采取適當的措施。以下是一個示例代碼,展示了如何處理這種情況:

#include <stdio.h>
#include <math.h>
#include <stdbool.h>

bool is_valid_input(double value) {
    return value >= 0;
}

double safe_sqrt(double value) {
    if (is_valid_input(value)) {
        return sqrt(value);
    } else {
        // 處理無效輸入的情況,例如打印錯誤消息并返回一個特殊值
        printf("Error: Invalid input value. Cannot compute square root.\n");
        return NAN;
    }
}

int main() {
    double input_value;
    printf("Enter a number: ");
    scanf("%lf", &input_value);

    double result = safe_sqrt(input_value);
    if (isnan(result)) {
        printf("The square root is not valid for the given input value.\n");
    } else {
        printf("The square root of %.2lf is %.2lf.\n", input_value, result);
    }

    return 0;
}

在這個示例中,我們定義了一個名為is_valid_input的函數來檢查輸入值是否有效(即非負數)。然后,我們定義了一個名為safe_sqrt的函數,它使用is_valid_input函數來檢查輸入值,并在發現無效輸入時返回NaN。在main函數中,我們調用safe_sqrt函數并檢查其返回值,以確定是否成功計算了平方根。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女