Вычислить значение выражения - C (СИ) (70796)
Формулировка задачи:
Здравствуйте! Пожалуйста, помогите кодом или советом - для допуска к экзамену выдали кучу задач. Сам я новичок, пока плохо разбираюсь...
Вычислить значение выражения:
(cos1/sin1)*((cos1+cos2)/(sin1+sin2))*...*((cos1+...+cosn)/(sin1+...+sinn)).
Решение задачи: «Вычислить значение выражения»
textual
Листинг программы
#include <stdio.h>
#include <math.h>
float func(int n) {
float result = 1;
float num = 0;
float denom = 0;
for (int i = 1; i <= n; i++) {
num += cos((float) i);
denom += sin((float) i);
result *= num / denom;
}
return result;
}
int main () {
int n;
printf("Введите n\n");
scanf("%d", &n);
float result = func(n);
printf("Значение выражения: %f", result);
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с плавающей точкой и вводом-выводом
- Определение функции с именем func, которая принимает целочисленный аргумент n
- Внутри функции объявлены три переменные: result, num и denom, которые будут использоваться для хранения результата, числителя и знаменателя соответственно
- Задается начальное значение result равное 1
- В цикле от 1 до n с шагом 1 выполняются следующие действия:
- Значение i преобразуется в тип float
- Значение cos(i) добавляется к num, а значение sin(i) к denom
- Результат умножается на num и делится на denom, затем присваивается переменной result
- Функция func возвращает значение result
- В функции main происходит запрос на ввод значения n с помощью функции scanf
- Вызывается функция func с переданным значением n
- Результат вычислений выводится на экран с помощью функции printf
- Программа завершается возвратом 0, что означает успешное выполнение