Twierdzenie Pitagorasa

akal

Użytkownik
Dołączył
Maj 5, 2006
Posty
8
Witam wszystkich ... zrobilem programik w dev c++ obliczajacy przeciwprostokatna i przyprostokatna za pomoca twierdzenia pitagorasa. Wszystko dzialalo dobrze dopoki nie uzylem funkcji "switch" tzn. program po skompilowaniu zalacza sie ale gdy wpisze co chce wybrac i nacisne enter to sie wylacza ;/. Dzisiaj zaczalem sie bawic tym jezykiem i dopiero sie ucze wiec moglby mi ktos sprawdzic ten kod i najwyzej poprawic? Z gory dzieki.

Oto kod:
Kod:
#include <stdio.h>

#include <conio.h>



int main (void){

    printf ("Twierdzenie Pitagorasa by Berciknn");

    printf ("Co chcesz zrobic?nn");

    printf ("1 -Obliczyc przeciwprostokatnann");

    printf ("2 -Obliczyc przyprostokatnann");

    int wybor;

    scanf ("%f",&wybor);

    switch(wybor) {

                      case 1:    {   

                printf ("Podaj dlugosc pierwszej przyprostokatnejnn");

    printf ("a=");

    float a;

    scanf ("%f",&a);

    float b;

    printf ("Podaj dlugosc drugiej przyprostokatnejnn");

    printf ("b=");

    scanf ("%f",&b);

    float wynik = (a*a)+(b*b);

    printf ("Przeciwprostokatna wynosi %f",wynik);

    

    getch ();

    return 0;

        } 

                      case 2:    {   

    printf ("Podaj dlugosc przyprostokatnejnn");

    printf ("a=");

    float a;

    scanf ("%f",&a);

    float b;

    printf ("Podaj dlugosc przeciwprostokatnejnn");

    printf ("b=");

    scanf ("%f",&b);

    float wynik = (b*b)-(a*a);

    printf ("Druga przyprostokatna wynosi %f",wynik);

    

    getch ();

    return 0;

}

}

}
 

djczarny

Użytkownik
Dołączył
Maj 14, 2005
Posty
135
ładny c++ [:
2 poprawki i byłby to poprawny C

widać nie czytasz ostrzeżen kompilatora

scanf ("%f",&wybor);
powinno być:
scanf (" %d",&wybor);

%d -> tam gdzie wczytuje do zmiennej int,
%f -> gdzie wczytuje do floata

i przed każdym % w tych scanf-ach ja bym spację postawił

i jeszcze błąd merytoryczny widzę..

float wynik = (b*
<
-(a*a);
printf ("Druga przyprostokatna wynosi %f",wynik);

tu powinien zwracać pierwiastek kwadratowy z "wynik"






nie kompilowałem tego i nie wiem czy zadziała jeżeli ci pomogłem wcisnij pomógł
 

akal

Użytkownik
Dołączył
Maj 5, 2006
Posty
8
Pomogles pomogles wielkie dzieki ;]
Coraz bardziej mi sie zaczyna to podobac
<

A co do tego bledu to zobaczylem go gdy wklejalem ten kod ale nie chcialo mi sie poprawiac go na stronce
<
. U siebie juz poprawilem.
 

akal

Użytkownik
Dołączył
Maj 5, 2006
Posty
8
tylko ze mi kompilator nic nie pokazal ... uzywam devlanda 4.9.9.2 i po nacisnieciu magicznego przycisku "F9" on to skompilowal i odpalil bez zadnych logow
 

djczarny

Użytkownik
Dołączył
Maj 14, 2005
Posty
135
Czyli nic poważnego (-: skoro się utworzył to na pewno się uruchamia(niekoniecznie) lub widocznie tak został zaprogramowany mówisz ,że w C piszesz od dziś to możesz mieć jakieś problemy ..
 

akal

Użytkownik
Dołączył
Maj 5, 2006
Posty
8
Działanie

Mam taki problemik .. robie programik ktory liczy rozne dzialania i nie wiem zrobic pierwiastek wyniku tzn gdy mam taki kod :

float wynik = (a*a)+(b*
<
; (twierdzenie pitagorasa)

to wynik jest kwadratem danej liczby a zeby obliczyc sama liczne nalezy to spierwiastkowac .. nie wie ktos moze jak to zapisac?
 
Do góry Bottom