Top.Mail.Ru
Ответы

Помогите, пожалуйста с кодом на си для лабы

Есть код, но я не совсем понимаю, как сделать так, чтобы часть кода (ветвь второй формулы) не сразу шла на "не существует", а продолжила считать. При данных m=4 и n=1.8, х=16,95 дальше высчитывание не происходит.

#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL, "Rus");
int m;
float n, x, y, z;
printf("Введите значение m(целое):");
scanf("%d", &m);
printf("Введите значение n(действительное):");
scanf("%f", &n);
if (m > 5)
{
x = sin(m + n);
printf("x=%6.2f ", x);
}
else
{
if ((m * pow(n, 2) - 2.1 * n) >= 0 )
{
x = n + 5 * sqrt(m * pow(n, 2) - 2.1 * n);
printf("x=%6.2f ", x);
}
else printf("значение х не существует\n");
printf ("Дальнейшее вычисление y и z невозможно\n");
return 0;
}
if (x <= 0)
{
if ((m * n + x) > 0 && (m * n + x) != 0)
{
y = log(m * n + x);
printf("y=%6.2f ", y);
}
else printf("значение y не существует, так как аргумент меньше либо равен 0!");
printf ("Дальнейшее вычисление z невозможно\n");
return 0;
}
else
{
y = cos(m * x) * sin(n * x);
printf("y=%6.2f ", y);
}
{
z = (2 * x + 3 * y) / (pow(m, 2) + 5);
printf("z=%6.2f\n", z);
}
printf("m=%.2d\nn=%.2f", m, n);
return 0;
}

По дате
По рейтингу
Аватар пользователя
Ученик

Три выражения нужно обьеденить фигурными скобками:
else
{
printf(...);
printf(...);
return 0;
}

В противном случае только одно выражение относится к else, а остальные два выполняются в любом случае. В том числе команда завершения return.

Аватар пользователя
Ученик

Спасибо за ответ) Сам конечно потом заметил, но благодарю за помощь

Аватар пользователя
Мудрец

Репетитор по информатике, 1200 рублей в час, минимальная длина занятия - 30 минут. Дерзай



Видео по теме