


Си - не выводит результат - помогите пожалуйста.
задача такова, необходимо решить выражение с двумя переменными..при этом чтобы программа выводила ошибку при вводе значений не удовлетворяющих ОДЗ, и результат конечно же..
Я так понимаю, что параметр 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;
}
"c" в функцию передаётся как параметр и после ретурна никуда не присваевается
Подозреваю надо
с=reshenie(x, p, &k, c);
(Хотя при таком коде трудно понять с какой стороны начинать править)
(ну и ещё много всякого)
Например выкинь
int x,p,k;
float a,b,c;
Глобальные переменные потом путаются с локальными и полный геморрой потом всё это отслеживать