askhsh c me trigwna

Συζητήσεις για την γλώσσα C και C++

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
George Bourazanis
Δημοσιεύσεις: 1
Εγγραφή: 24 Νοέμ 2013 17:28

askhsh c me trigwna

Δημοσίευση από George Bourazanis » 24 Νοέμ 2013 17:46

ekfwnhsh askhshs

Γράψετε πρόγραμμα σε C το οποίο να διαβάζει 3 θετικούς ακέραιους αριθμούς a, b,c, οι οποίοι θεωρούνται ότι παριστούν τα μήκη των πλευρών ενός τριγώνου. Tο πρόγραμμα να εξετάζει εάν τα τρία μήκη a ,b,c σχηματίζουν τρίγωνο. Εάν τα a, b,c σχηματίζουν τρίγωνο να εκτυπώνει τα δεδομένα εισόδου και βρίσκει τη φύση του τριγώνου, δηλαδή εάν είναι ισοσκελές, ισόπλευρο ή σκαλινό. Τέλος υπολογίζει το εμβαδόν του τριγώνου εφ'όσον σχηματίζεται τρίγωνο από τα δοσμένα μήκη πλευρών και τον τύπο Ε = √ s(s-a)×(s-b)×(s-c) όπου: s=(a+b+c)/2.. Δίνεται ότι, τρία μήκη πλευρών a, b και c για να σχηματίσουν τρίγωνο θα πρέπει το άθροισμα των δύο πλευρών ναι είναι μεγαλύτερο της τρίτης πλευράς και το απόλυτο της διαφορά τους να είναι μικρότερο της τρίτης πλευράς. Να καλέσετε τις συναρτήσεις sqrt και fabs που βρίσκονται στη βιβλιοθήκη math.h της C για να υπολογίσετε την τετραγωνική ρίζα της παράστασης και το απόλυτο της διαφοράς των δύο πλευρών αντίστοιχα. Τη βιβλιοθήκη math.h πρέπει να την συμπεριλάβετε στο πρόγραμμα σας




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

int a,b,c,E,d,s ;

main(){

d=((a == b) && (b == c));

printf("exoume ena programma trigwnwn me tis metablhtes a,b,c \n");
printf("grapse timh sto a\n");
scanf("%d",&a);
printf("grapse timh sto b\n");
scanf("%d",&b);
printf("grapse timh sto c\n");
scanf("%d",&c);

if ( ( a + b ) > c ){
printf("sxhmatizei trigwno \n");
s=((float)((a+b+c)/2));
E=sqrt(s*(s-a)*(s-b)*(s-c));}

else if (( a + b ) > c && ((a == b) && (b == c)))
printf("sxhmatizei isopleuro trigwno \n");

else if (( a + b ) > c && ((a != b) && (b != c)))
printf("sxhmatizei skalino trigwno \n");

else if (( a + b ) > c && ((a != b) && (b == c)))
printf("sxhmatizei isoskeles trigwno \n");

else
printf("den sxhmatizei trigono \n");

printf(" %d %d %d ",a,b,c);

system("pause");
}

Άβαταρ μέλους
giannis17
Honorary Member
Δημοσιεύσεις: 1215
Εγγραφή: 06 Ιαν 2005 19:50
Τοποθεσία: Παγκράτι - Αθήνα
Επικοινωνία:

askhsh c me trigwna

Δημοσίευση από giannis17 » 25 Νοέμ 2013 12:14

To E kai to s dilwse ta san float, telos den exeis valei pouthena na emfanizei to E, sou leipei ena printf.
"There is only one problem with common sense; it’s not very common."
&#8211; Milt Bryce

AlexFreestuff
Δημοσιεύσεις: 31
Εγγραφή: 04 Μάιος 2009 06:57

askhsh c me trigwna

Δημοσίευση από AlexFreestuff » 30 Μαρ 2014 18:43

Το πρώτο πράγμα που πρέπει να κάνουμε είναι να συγκρίνουμε της πλευρές
αν είναι όλες ίδιες είναι ισόπλευρο
αν οι δυο πλευρές είναι ίδιες πλησιάζουμε σε ισοσκελές για την στιγμή δεν μας ενδιαφέρει η τρίτη πλευρά
η τρίτη αν είναι μικρότερη από της άλλες δυο σχηματίζετε κορυφή <60μοιρες και αν μεγαλύτερη κορυφή >60 μοίρες
αν όλες οι πλευρές είναι διαφορετικές θα βρούμε τις δυο μικρότερες πλευρές
και θα χρησιμοποιήσουμε το πυθαγόρειο θεώρημα α στο τετράγωνο + β στο τετράγωνο = χ ρίζα του χ=πλευρά γ αν είναι σωστό σχηματίζετε τρίγωνο

πρέπει να προσέξεις τις τιμές που μπορεί να πάρουν τιμές κινητής υποδιαστολής

else if (α==β)&&(β==γ)
printf("sxhmatizei isopleuro trigwno \n");

else if(α==β)||(β==γ) ||(α==γ)
printf("sxhmatizei isoskeles trigwno \n");


If (a<b)&&(a<c)
microteriplevra1=a
If (b<a)&&(b<c)
microteriplevra1=b
If (c<a)&&(c<b)
microteriplevra1=b

If (a<b)&&(a>c)
microteriplevra2=a

If (a<c)&&(a>b)
microteriplevra2=a
το ίδιο για της άλλες δυο αν βρεθούν μικρότερες α και β
τότε α τετράγωνο και β τετράγωνο =χ
ρίζα χ==γ

printf("sxhmatizei skalino trigwno \n");
Ελπίζω να σε βοήθησα

Απάντηση

Επιστροφή στο “C, C++”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης