| Allwe a întrebat:

Salut, in code blocks in C, cum aflu aria unui triunghi daca cunosc doar laturile, mai jos am incercat eu, dar imi da eroare la arie si nu stiu cum sa o scot, sau ce am gresit: int a,b,c,p, aria;

#include math.h (math.h in )
int a,b,c,p,aria;
printf("Intruduceti laturile:\na=");
scanf("%d",&a);
printf("\nb=");
scanf("%d",&b);
printf("\nc=");
scanf("%d",&c);
p=a+b+c;
printf("Perimetrul triunghiului este %d",p);
aria=sqrt(p(p-a)(p-b)(p-c));
printf("Aria triunghiului este %d", aria);

Ma poate ajuta cineva?

Răspuns Câştigător
| house07 a răspuns:

Asta
aria=sqrt(p(p-a)(p-b)(p-c));

Trebuie să fie de fapt
aria=sqrt(p*(p-a)*(p-b)*(p-c));

| Allwe explică (pentru house07):

Multumesc, merge

5 răspunsuri:
| house07 a răspuns:

Asta
aria=sqrt(p(p-a)(p-b)(p-c));
Trebuie să fie de fapt
aria=sqrt(p*(p-a)*(p-b)*(p-c));

Compilatorul nu știe că tu vrei că acolo sa fie înmulțire daca nu ii spui

suntserios
| suntserios a răspuns:

Aria nu are de ce sa fie int atat timp sa ii asignezi o valoare rezultata dintr un radical.

si sqrt(p(p-a)(p-b)(p-c)) = sqrt(p*(p-a)*(p-b)*(p-c))

| danutzu96 a răspuns:

Pune si headerul #include
unde ai sqrt pune * (adica sqrt(p*(p-a)*(p-b)...)
Vezi ca aria ar trebui sa fie float, functia sqrt returneaza o valuare float.

| Creierash a răspuns:

Raspunsurile de mai jos sunt bune, dar mai trebuie adaugat un lucru.
sqrt da return la double, dar tu ai declarat aria ca fiind integer. Trebuie sa declari aria ca fiind double.
double arie = sqrt(...);

Se face C in liceu? Credeam ca profesorii sunt incuiati si predau doar Pascal si C++. E foarte tare daca se face C.