Ashtaret
Филаретовый пизироq
все спасибо исправилвроде так.Код:#include<stdio.h> #include<math.h> struct geron{ int a; int b; int c; }; float obh(struct geron *ptr){ float p; p=(ptr->a + ptr->b + ptr->c)/2.0; return sqrt(p*(p-ptr->a)*(p-ptr->b)*(p-ptr->c)); } int main(){ struct geron s1, s2={2,3,4}, *ptrs1=&s1, *ptrs2=&s2; scanf("%d%d%d",&s1.a,&s1.b,&s1.c); printf("s1=%2.2f, s2=%2.2f",obh(ptrs1),obh(ptrs2)); return 0; }
Можно исправить быстро твой код, там 2 ошибки:
1)
int / int = int.
нужно делать примерно так:
int / float = float;
2)формула Герона
у тебя формула немного другая..
Код:
(*S).p=((*S).a+(*S).b+(*S).c)/2.0;
return sqrt((*S).p*((*S).p-(*S).a)*((*S).p-(*S).b)*((*S).p-(*S).c));