<font color="green">alfa=asin((2/bc)sqrt(p(p-a)(p-b)(p-c)));
beta=asin((2/ac)sqrt(p(p-a)(p-b)(p-c)));</span>
Oto fragment kodu prostego programu... problem w tym ze kompiluje sie on prawidłowo, ale wyskakuje przy włączeniu DOMAIN ERROR..
??
<font color="green">alfa=asin((2/bc)sqrt(p(p-a)(p-b)(p-c)));
beta=asin((2/ac)sqrt(p(p-a)(p-b)(p-c)));</span>
Oto fragment kodu prostego programu... problem w tym ze kompiluje sie on prawidłowo, ale wyskakuje przy włączeniu DOMAIN ERROR..
??
z takim skrawkiem kodu nic nie zdziałamy . Musisz wkleić reszte , zobaczymy jakie są wartości zmiennych , spróbuje skompilowac u siebie .
/*
PROGRAM OBLICZAJĄCY ŚRODKOWĄ TRÓJKĄTA
#include
#include
#include
main()
{
float a,b,c,p,alfa,beta,fi,s;
const float pi=3.1415926;
printf("tt Program oblicza srodkowa trojkata");
printf("\n Podaj bok 'a' trojkata : ");
scanf("%f",&a);
printf("\n Podaj bok 'b' trojkata : ");
scanf("%f",&b);
printf("\n Podaj bok 'c' trojkata : ");
scanf("%f",&c);
if ((a+b!
printf("nnt Srodkowa trojkata wynosi : %f",&s);
Dlaczego drukujesz adres zmiennej "s" jako float? :)
a więc tak :
po pierwsze jak stosujesz printf i chcesz wydrukować wartość jakiejś zmiennej , to w liście argumentów już nie podajesz jej adresu :
printf("nnt Srodkowa trojkata wynosi : %f",<font color="red">&</span>s);
to na czerwowno jest tam niechciane ;)
po drugie stosujesz wszędzie typ float , a te funkcje matematyczne są pisane pod double i mój kompilator ( vc++ ) wyrzuca w cholere warningów , że przez to może dojść do utraty dokładności .
jak już chcesz stosować typ double to do pobierania i drukowania używaj : %lf
po trzecie mój kompilator bez problemu skompilował , uruchamiał sie też bez problemu , ale wyniki były kosmiczne , na początku nie wiedziałem co to jest , ale wychodzi coś koło nieskończoności , oto przyczyna :
opis funkcji asin :
Return Value
The asin function returns the arcsine of x in the range –π/2 to π/2 radians. If x is less than –1 or greater than 1, asin returns an indefinite (same as a quiet NaN). You can modify error handling with the _matherr routine.
chyba wiem gdzie sie pomyliłeś :
alfa=asin((2/<font color="red">(</span>bc<font color="red">)</span>)sqrt(p(p-a)(p-b)(p-c)));
beta=asin((2/<font color="red">(</span>ac<font color="red">)</span>)sqrt(p(p-a)(p-b)(p-c)));
/*
PROGRAM OBLICZAJĄCY ŚRODKOWĄ TRÓJKĄTA
*/
#include
#include
#include
main()
{
double a,b,c,p,alfa,beta,fi,s;
const double pi=3.1415926;
printf("\t\t Program oblicza srodkowa trojkata");
printf("\n Podaj bok 'a' trojkata : ");
scanf("%lf",&a);
printf("\n Podaj bok 'b' trojkata : ");
scanf("%lf",&b);
printf("\n Podaj bok 'c' trojkata : ");
scanf("%lf",&c);
if ((a+b!
a czemu sie mnie pytasz ??? :))
przeciez to twoj program , jak sie kompiluje i dobrze dziala to myśle , że może być [browar]
Bo prawie wcale nie znam sie na C++, a do szkoły musze napisac taki program :(:(