Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите написать пожалуйста программу на си

Addk Знаток (255), открыт 1 день назад
Написала такую программу для вычисления математичкой функции
функции нужно в ней сделать проверку на отрицательное число ,у меня в программе неверно .Как сделать ,чтобы мы проверяли ,что ctgx-это cosx/sin x ,в моей программе (1/tgx,где 1/sinx/cosx),где sin x не равен 0 cos x ,тоже не равен нулю и потом от этой функции ,что она больше либо равно 0 корень меньше 0 на фотке какие проверки должны быть ,как это реализовать в код #include <stdio.h>
#include <math.h>

int main(void) {
double x, result;

printf("Введите значение x: ");
scanf("%lf", &x);

if (x == M_PI + 9 * M_PI / 2) {
printf("Ошибка: деление на ноль при вычислении котангенса.\n");
return 1;
}

if (pow(1 / tan(pow(x - M_PI, 9)), 1. / 5) < 0) {
printf("Ошибка: отрицательное значение под корнем.\n");
return 1;
}

result = exp(2) * pow(x, 1./3) +
pow(1 / tan(pow(x - M_PI, 9)), 1. / 5) / pow(x, 4) +
3.4 +
pow(sin(x * 6.2), 2);

printf("Результат: %lf\n", result);

return 0;
}
1 ответ
Николай Веселуха Высший разум (368733) 1 день назад
 #include <math.h> 
#include <stdbool.h>
#include <stdio.h>

typedef struct {
_Bool status;
double value;
} Result;

Result ctg(double x) {
double eps = 1e-15;
double sin_x = sin(x);
double cos_x = cos(x);
Result result;
if (fabs(sin_x) < eps) {
result.status = false;
result.value = 0;
} else {
result.status = true;
result.value = cos_x / sin_x;
}
return result;
}

int main(void) {
double x;
Result result;
printf("x: ");
scanf("%lf", &x);
result = ctg(x);
if (!result.status) {
puts("Error: division by zero.");
} else {
int width = 15;
if (fabs(result.value) < 1e-15) {
result.value = 0;
width = 0;
}
printf("ctg(x) = %.*lf\n", width, result.value);
}
return 0;
}
Похожие вопросы