infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: Anton Bogdan din Octombrie 31, 2015, 21:20:23



Titlul: Un pic de ajutor daca se poate :)
Scris de: Anton Bogdan din Octombrie 31, 2015, 21:20:23
Salut, am si eu de facut o problema care suna in modul urmator: Sa se scrie un program in care se declara o structura pentru reprezentarea unui triunghi prin valorile laturilor sale. Se defineste o functie care citeste valorile pentru o data de tip triunghi, o functie care afiseaza valorile unei date de tip triunghi si o a treia functie care returneaza aria unui triunghi preluat ca parametru.

Eu am facut problema in modul urmator si nu imi dau seama ce este gresit:
Citat
#include<iostream>
#include<math.h>
using namespace std;
struct triunghi
{int a,b,c;
}x;
void citire()
{ do{cout<<"a=";cin>>x.a;
cout<<"b=";cin>>x.b;
cout<<"c=";cin>>x.c;}
while((x.a+x.b<=x.c && x.a+x.c<=x.b && x.b+x.c<=x.a)||(x.a<=0||x.b<=0 || x.c<=0));
}
void afisare()
{
    cout<<"Laturile triunghiului sunt:"<<endl;
    cout<<"a="<<x.a<<endl;
    cout<<"b="<<x.b<<endl;
    cout<<"c="<<x.c<<endl;
}
int arie(int d, int e, int f)
{
    float sp, aria;
    sp=(float)(d+e+f)/2; cout<<sp<<endl;
    aria=(float)sqrt(sp*(sp-d)*(sp-e)*(sp-f));
    return aria;
}
int main()
{
    citire();
    afisare();
    cout<<"Aria="<<arie(x.a,x.b,x.c);
}


Titlul: Răspuns: Un pic de ajutor daca se poate :)
Scris de: Anton Bogdan din Noiembrie 03, 2015, 19:57:00
Nu se face citirea intr-o bucla, acea conditie este in caz ca valorile introduse nu sunt laturi de triunghi, de exemplu daca pun o latura 0 ma pune sa introduc alte valori, daca valorile sunt bune numai introduc altele, deci nu aceea este problema. Aceea este la arie, nu stiu din ce cauza nu o calculeaza corect de fiecare data.


Titlul: Răspuns: Un pic de ajutor daca se poate :)
Scris de: FMI Razvan Birisan din Noiembrie 03, 2015, 20:09:37
Formula de arie pare bună.