Тема: -nan(ind)

#include <stdio.h>
#include <math.h>
double f(double x, double a, double k) {
    double result;
    if (a == 0 || x == 0 || x == a) {
        printf("Cannot compute a function for x = %.2lf\n", x);
        return 0;
    }
    result = pow(cos(a * x), 1. / 3) + (k * log(a - x)) / log(a * x);
    return result;
}
int main() {
    double xmin, xmax, dx;
    double a, k;
    double x, y;

    printf("Enter the value xmin: ");
    scanf_s("%lf", &xmin);
    printf("Enter the value xmax: ");
    scanf_s("%lf", &xmax);
    printf("Enter the value step dx: ");
    scanf_s("%lf", &dx);
    printf("Enter the value a: ");
    scanf_s("%lf", &a);
    printf("Enter the value k: ");
    scanf_s("%lf", &k);

    printf("Tabulation function f(x):\n");
    printf("-----------------------\n");
    printf("   x      |      f(x)   \n");
    printf("-----------------------\n");

    for (x = xmin; x <= xmax; x += dx) {
        y = f(x, a, k);
        printf("%8.2lf | %10.4lf\n", x, y);
    }
    return 0;
}

як позбутися nan ind у результатах обчислення ?

2

Re: -nan(ind)

Не вводити дані, які призводять до них.

3

Re: -nan(ind)

double x, double a, double k

(a == 0 || x == 0 || x == a)

що це за хтивий вівторок?

Подякували: Chemist-i1

4 Востаннє редагувалося Droid 77 (14.06.2023 21:14:35)

Re: -nan(ind)

Що очікується при форматуванні %.2lf?

printf("Cannot compute a function for x = %.2lf\n", x);

Це щось на зразок подвійного double?
Чи то кількість знаків після крапки?

5

Re: -nan(ind)

Droid 77 написав:

Чи то кількість знаків після крапки?

саме так і є

6

Re: -nan(ind)

Ну ось, наприклад https://ideone.com/uvwod9
xmin = 0
xmax = 0.1
dx = 0.01
a = 0.3
k = 3

Результат:
Tabulation function f(x):
-----------------------
   x      |      f(x)   
-----------------------
Cannot compute a function for x = 0.00
    0.00 |     0.0000
    0.01 |     1.6393
    0.02 |     1.7465
    0.03 |     1.8339
    0.04 |     1.9137
    0.05 |     1.9902
    0.06 |     2.0657
    0.07 |     2.1412
    0.08 |     2.2178
    0.09 |     2.2961
    0.10 |     2.3768

Як бачите, усе добре.