Возникли проблемы с кодом с++
Составить программу для вычисления выражения. Входные данные: х- переменная действительного типа, которую нужно ввести с клавиатуры, остальные переменные определить с помощью объявления с инициализацией. В результате выполнения программы выведите все входящие переменные и значения функции, применив к ним форматный вывод.
#include <iostream>
#include <math.h>
#include <stdlib.h>
double f(double z, double y, double& b, double& x)
{
return b = 1 + fabs(y - x) + (((y - x)pow(2)) / 2) + ((y - x)pow(3)) / 3;);
}
int main()
{
setlocale(0, ".1251");
double z = 60, y = 25, b, x;
printf(" Введите значение x= ");
scanf_s("%lf", &x);
printf(" b=%lf \n", f(z, y, b, x));
printf(" x=%lf \n", x);
system("pause");
return 0;
}
Ответы (2 шт):
Автор решения: Mr.Fokuss
→ Ссылка
Была неправильна написана операция pow.
Правильно её так писать: pow(выражение, степень):
#include <iostream>
#include <math.h>
#include <stdlib.h>
double f(double z, double y, double& b, double& x)
{
return b = 1 + fabs(y - x) + (pow(y - x, 2) / 2) + (pow(y - x, 3) / 3);
}
int main()
{
setlocale(0, ".1251");
double z = 60, y = 25, b, x;
printf(" Введите значение x= ");
scanf("%lf", &x);
printf(" b=%lf \n", f(z, y, b, x));
printf(" x=%lf \n", x);
system("pause");
return 0;
}
Автор решения: Harry
→ Ссылка
Ладно, придется таки написать, а то тут такого насоветуют...
#include <stdio.h>
double f(double x, double y)
{
y -= x;
return 1 + (y/3+0.5)*y*y + (y > 0 ? y : -y);
}
int main()
{
double y = 25, x;
printf("Введите x: ");
scanf("%lf", &x);
printf("b = %lf\n", f(x,y));
}
В самом крайнем случае
int main()
{
double y = 25, x;
printf("Введите x: ");
scanf("%lf", &x);
double b = f(x,y);
printf("x = %lf, y = %lf, b = %lf\n", x,y,b);
}