Найти ближайшее к какому-нибудь целому - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Даны натуральное число n и вещественное число x. Среди чисел (exp^(cos(x^(2*k))))*sin(x^(3*k)) (k = 1, 2, ..., n) найти ближайшее к какому-нибудь целому.

Решение задачи: «Найти ближайшее к какому-нибудь целому»

textual
Листинг программы
#include <stdio.h>
#include <math.h>
#define M_E        2.71828182845904523536
 
 
double res(int m, double y)
{   return pow(M_E,cos(pow(y,2*m)))*sin(pow(y,3*m));
}
 
int main()
{   int k,n,left,kmin;
    double x, cur, dmin, min = 1.;
    printf("x = ");
    scanf("%lf",&x);
    printf("n = ");
    scanf("%d",&n);
 
    printf("  n      res     left     right     dleft     dright\n");
    printf("<br>\n");
 
    for(k=1;k<n+1;k++)
    {   cur = res(k,x);
        if(cur<0) 
            left = (int)cur -1;
        else 
            left = (int)cur;
 
        cur-left<left+1-cur ? dmin=cur-left : dmin=left+1-cur;
        if(dmin<min) 
        {   min = dmin;
            kmin = k;
        }
 
        printf("%3d %10.3f %7d %7d %10.3f %10.3f\n", k, cur, left, left+1, cur-left, left+1-cur);
    }
 
    printf("Minimum distance min = %1.3f for k = %d", min, kmin);
 
    flushall();
    getchar();
    return 0;
}

Объяснение кода листинга программы

  1. В функции res используются математические функции cos и sin, а также функция pow для возведения в степень. Результат вычисления функции res выводится на экран.
  2. В функции main программа запрашивает у пользователя значения переменных x и n с помощью функции scanf.
  3. Затем программа выводит таблицу с расстояниями до корней функции res для различных значений n.
  4. В цикле for программа вычисляет значения функции res для каждого значения n и сохраняет минимальное расстояние до корня в переменной min.
  5. Программа выводит на экран минимальное расстояние и соответствующее значение n.
  6. В конце программы вызывается функция flushall для очистки буфера вывода и функция getchar для получения символа конца файла.
  7. Функция main возвращает 0, что означает успешное завершение программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.143 из 5
Похожие ответы