Разработать программу для вычисления значений заданных выражений - 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; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с I/O, математическими функциями и основаниями стека вызовов.
- Объявляем переменную
n
типа int, которая будет использоваться в функцииmain
иznamennuk
. - Определяем рекурсивную функцию
power
, которая вычисляетm
в степени. - Определяем функцию
fact
, которая вычисляет факториал числаn
. - Определяем функцию
znamennuk
, которая вычисляет значениеznamen
. - В функции
main
запрашиваем у пользователя ввод числаn
и сохраняем его в переменнуюn
. - Запрашиваем у пользователя ввод числа
m
и сохраняем его в переменнуюm
. - Вычисляем значение
power(m)
и делим его наznamennuk(1)
. - Выводим результат на экран.
- Возвращаем 0, чтобы указать, что программа успешно завершилась.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д