Простой линейный алгоритм на си, почему он не работает? :(

У меня несколько глупый вопрос, мне нужно написать простую программу на си, линейный алгоритм который считал бы функцию, но оно не работает! Почему? :(

#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;
}
→ Ссылка
Автор решения: enriquenc

Ты выводишь адреса переменных, а не сами переменные.

→ Ссылка