Разработать программу для вычисления значений заданных выражений - C (СИ)

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

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

Задано натуральные n и m. Разработать программу для вычисления значений заданных выражений. При вычислении выражений использовать рекурсивные процедуры или функции. Условие - Почему-то функция znamennuk неправильно вычисляет значение.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
int power (int m)
{
   if (m == 1) return 2;
   else return 2*power(m-1);
}
 
double fact (int n)
{
   if(n <= 2) return n;
   else return n*fact(n-1);
}
 
float znamennuk (int n)
{
   if (n == 1) return (float)1/3;
   else return ((float)1/3)*(sqrt(1/fact(n-1)+znamennuk(n-1)));
}
 
void main()
{
   int m, n;
   printf("Enter N= ");
   scanf("%d", &n);
   printf("Enter M= ");
   scanf("%d", &m);
  //printf("pow 2^%d= %d\n", m, power(m));
  // printf("fact(%d)= %lf\n", n,fact(n));
  //printf("znamennuk= %f\n", znamennuk(n));
   printf("Result= %f\n", power(m)/znamennuk(n));
 
getch();
}

Решение задачи: «Разработать программу для вычисления значений заданных выражений»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
int n;
 
int power (int m)
{
   if (m == 1) return 2;
   else return 2*power(m-1);
}
 
double fact (int n)
{
   if(n <= 2) return n;
   else return n*fact(n-1);
}
 
float znamennuk (int k)
{
   if (k > n)
       return 0.0;
   else
       return 1./3 * sqrt(1. / fact(k) + znamennuk(k+1));
}
 
int main()
{
   int m;
   printf("Enter N= ");
   scanf("%d", &n);
   printf("Enter M= ");
   scanf("%d", &m);
   printf("Result= %f\n", power(m)/znamennuk(1));
return 0;
}

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

  1. Включаем необходимые заголовочные файлы для работы с I/O, математическими функциями и основаниями стека вызовов.
  2. Объявляем переменную n типа int, которая будет использоваться в функции main и znamennuk.
  3. Определяем рекурсивную функцию power, которая вычисляет m в степени.
  4. Определяем функцию fact, которая вычисляет факториал числа n.
  5. Определяем функцию znamennuk, которая вычисляет значение znamen.
  6. В функции main запрашиваем у пользователя ввод числа n и сохраняем его в переменную n.
  7. Запрашиваем у пользователя ввод числа m и сохраняем его в переменную m.
  8. Вычисляем значение power(m) и делим его на znamennuk(1).
  9. Выводим результат на экран.
  10. Возвращаем 0, чтобы указать, что программа успешно завершилась.

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


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

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

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