problem z arcusem :(

0

<font color="green">alfa=asin((2/bc)sqrt(p(p-a)(p-b)(p-c)));
beta=asin((2/a
c)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..

??

0

z takim skrawkiem kodu nic nie zdziałamy . Musisz wkleić reszte , zobaczymy jakie są wartości zmiennych , spróbuje skompilowac u siebie .

0

/*
PROGRAM OBLICZAJĄCY ŚRODKOWĄ TRÓJKĄTA

  • potrzebne do szkoly :(
    */

#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!

0

printf("nnt Srodkowa trojkata wynosi : %f",&s);

Dlaczego drukujesz adres zmiennej "s" jako float? :)

0

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>a
c<font color="red">)</span>)sqrt(p(p-a)(p-b)(p-c)));

0

/*

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!

0

a czemu sie mnie pytasz ??? :))
przeciez to twoj program , jak sie kompiluje i dobrze dziala to myśle , że może być [browar]

0

Bo prawie wcale nie znam sie na C++, a do szkoły musze napisac taki program :(:(

1 użytkowników online, w tym zalogowanych: 0, gości: 1