Нужна помощь с программой. Язык си. После ввода переменной Х должна считать и выводить...

0 голосов
87 просмотров

Нужна помощь с программой. Язык си. После ввода переменной Х должна считать и выводить мне Y, но, почему-то, выводит мне Х.


#include
#include
#include
#include

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
double x = 0;
double a;
double b;
double c;
double y = 0;

printf("Enter X =\n ");
scanf("%d",&x);
a = sin(x);
printf("%d\n", a);
b = pow(cos(x), 2);
c = 1 + tan(x);
y = 4 * pow(a, 2) + x * (pow(b, 2) + x * (pow(c, 2) + x * (a * b + pow((a + b), x))));
printf("%d\n", y);
return 0;
}


Информатика (20 баллов) | 87 просмотров
0

Запускается через консоль. Ошибок нет. Или вы про что?!

0

Я ввожу переменную икс. Затем проверяю, что он мне посчитал в переменной а. Вывожу это на экран. Переменная а равна переменной икс, то есть синус он не находит. С конечной переменной тоже самое. Выходит Игрик равен иксу. Не пойму в чем дело

0

a scanf ничего не должен возвращать?

0

Я плохо на СИ) Scanf считывает переменную и все, разве нет?

0

я тип double вообще существует в библиотеке math? попробуй float

0

теперь a и y равны нулю при любом значении

0

но printd с маской %d-выведет только целые числа, никаких дробных не будет. ДЛЯ синусов р косинусов характерны дробные

0

вместо %d попробуй %f

0

все равно одну нули

0

смотрю вот ответ у PetyaGavrikov, вроде ж исправлены как раз %d на %f и применен тип переменной float, так что изменилось то тогда? Само заработало что ли?

Дан 1 ответ
0 голосов
Правильный ответ

#include
#include

int main(int argc, char *argv[]) {
float x, a, b, c, y;

printf("Enter X =\n "); 
scanf("%f",&x);
a = sin(x); 
printf("%f\n", a);
b = pow(cos(x), 2); 
c = 1 + tan(x); 
y = 4*pow(a,2) + x*(pow(b,2) + x*(pow(c,2) + x*(a*b+pow((a+b),x)))); 
printf("%f\n", y); 
return 0; 
}

(194k баллов)