Модифицировать вычисление выражения под другие входные данные - C (СИ)
Формулировка задачи:
По принципу этой программы напишите пожалуйста похожее но с другими значениями такими как на картинке.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv[]) {
float a, b, x, f;
printf("\nx=");
scanf("%f", &x);
a = 15*x + 21*pow(x,2);
if (a < 0) {
printf("\n некорректное число x (a)");
return 1;
}
a = sqrt(a);
b = sin(x*x - x);
if (a - b > 10)
if (b > 0 && fabs(cos(a)-b) > 0.00001) {
f = a*log(b) + b/(cos(a)-b);
printf("\nf1=%.3f", f);
}
else {
printf("\n некорректное число x (f1)");
return 2;
}
else
if (a+1>=0 && fabs(cos(12*b-4))>0.00001) {
f = (1 + sin(sqrt(a+1))) / cos(12*b - 4);
printf("\nf2=%.3f", f);
}
else {
printf("\n некорректное число x (f2)");
return 3;
}
return 0;
}Решение задачи: «Модифицировать вычисление выражения под другие входные данные»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
float a, b, x;
printf("\nx=");
scanf("%f", &x);
if (x==0 || 2*x+5<0)
{
printf("Wrong a\n");
return 0;
}
a = sqrt(2*x+5)/x;
b = abs(2*x);
if(a*a<b)
{
printf("f1=%.3f\n",a+b*(a+b));
}
else
{
printf("f2=%.3f\n",sqrt(a*a-b*b));
}
return 0;
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Объявляем переменные a, b, x типа float
- Выводим на экран значение x с помощью функции printf
- Считываем значение x с помощью функции scanf
- Проверяем условие: если x равно нулю или 2*x+5 меньше нуля, выводим сообщение
Wrong aи завершаем работу программы - Вычисляем значение a по формуле sqrt(2*x+5)/x
- Вычисляем значение b по формуле abs(2*x)
- Проверяем условие: если a в квадрате меньше b, выводим значение f1 по формуле a+b*(a+b))
- Если условие не выполняется, выводим значение f2 по формуле sqrt(aa-bb)
- Завершаем работу программы