Всегда выдает нули в ответе. C Visual studio 2019
Первое задание в вузе было вычислить площадь треугольника по высоте и синусам трех углов. Делал по образцу, препод сказал, что не знает чем помочь, ибо ошибки в коде не видит. В ответе всегда выдает 0,000000.
void main()
{
int A, B, C, h, S;
setlocale(LC_ALL, "russian");
printf("Введите высоту h\n");
scanf_s("%f", &h);
printf("Введите первый угол A\n");
scanf_s("%lf", &A);
printf("Введите второй угол B\n");
scanf_s("%lf", &B);
printf("Введите третий угол C\n");
scanf_s("%lf", &C);
S = (h * h * sin(A)) / (2 * sin(B) * sin(C));
printf("%lf", &S);
getchar(),
getchar();
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Гнать такого препода в три шеи...
scanf_s("%f", &h);
scanf_s("%lf", &A);
и так далее — вы читаете float и double в переменную типа int! Понятно, что получается ерунда.
Результат преобразуете в int — теряете дробную часть.
Да и выводите по сути адрес, приведенный в double.
printf("%lf", &S);
Потом,
void main()
Я вообще не понимаю, как вы это скомпилировали.
И, надеюсь, вы знаете, как правильно вводить числа с плавающей точкой в русской локали...