Простой линейный алгоритм на си, почему он не работает? :(
У меня несколько глупый вопрос, мне нужно написать простую программу на си, линейный алгоритм который считал бы функцию, но оно не работает! Почему? :(
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
float x,y,z,a,b,p;
printf("x,a,b = \n");
scanf("%f",&x);
scanf("%f",&a);
scanf("%f",&b);
y = (sin(x)+1.5)/2;
p = pow(a,1.0/4.0);
z = (pow(y,3)+p+3.3)/(b+p+3.3);
printf("%f,%f", &y,&z);
return 0;
}
Ответы (4 шт):
Автор решения: Igor
→ Ссылка
p = sqrt(sqrt(a) + 3.3);
z = (pow(y, 3) + p) / (b + p);
printf("%f,%f", y, z);
Автор решения: Harry
→ Ссылка
Потому что внешний корень распространяется на (корень из a) + 3.3, а не только на корень из a... Посмотрите внимательно, докуда тянется горизонтальная черта радикала.
Автор решения: Yakov
→ Ссылка
для извлечения корня квадратного есть функция sqrt(), если ты вводишь угол в градусах, то аргумент синуса нужно умножить на ПИ, т.к. он в радианах.
#define PI 3.14159265358979323846
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
float x,y,z,a,b,p;
printf("x,a,b = \n");
scanf("%f",&x);
scanf("%f",&a);
scanf("%f",&b);
y = (sin(x*PI)+1.5)*0.5;
z = (pow(y,3)+sqrt(sqrt(a)+3.3)/(b+sqrt(sqrt(a)+3.3));
printf("%f,%f", &y,&z);
return 0;
}
