Top.Mail.Ru
Ответы
Аватар пользователя
13лет
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

Си - не выводит результат - помогите пожалуйста.

задача такова, необходимо решить выражение с двумя переменными..при этом чтобы программа выводила ошибку при вводе значений не удовлетворяющих ОДЗ, и результат конечно же..
Я так понимаю, что параметр k не передается в основную программу и поэтому ничего не выводит. Помогите пожалуйста это исправить.

вот программа которая получилась у меня:

#include <math.h>
#include <stdio.h>
#include <conio.h>

int x,p,k;
float a,b,c;

float reshenie(int x, int p, int *k, float c)
{
int l=*k;

if ((2*x*x-p)>0)
{
if (x!=-p)
{
if ((tan(log((x+p)*(x+p))-x*x*pow(p,4)))!=0)
{
a=3*pow(x,3)*p*p-sqrt(2*x*x-p);
b=tan(log((x+p)*(x+p))-x*x*pow(p,4));
c=a/b;
l=1;
}
else l=2;
}
else l=3;
}
else l=4;
*k=l;
return c;
}

int main()
{
clrscr();

printf("vvedite znachenije x= ");
scanf("\n %d", &x);

printf("vvedite znachenie p= ");
scanf("\n %d", &p);

reshenie(x, p, &k, c);

if (k!=4)
{
if (k!=3)
{
if (k!=2)
{
if (k!=1)
{
printf("znachenie drobi ravno = %f\n",c);
}
else printf("v znamenatele 0");
}
else printf("pod logarifmom 0");
}
else printf("pod kornem 0");
}
getch();
return 0;
}

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

"c" в функцию передаётся как параметр и после ретурна никуда не присваевается
Подозреваю надо
с=reshenie(x, p, &k, c);
(Хотя при таком коде трудно понять с какой стороны начинать править)

(ну и ещё много всякого)
Например выкинь
int x,p,k;
float a,b,c;
Глобальные переменные потом путаются с локальными и полный геморрой потом всё это отслеживать