不知道有没有问题……
#include<stdio.h> #include<math.h> #include<conio.h> float areatri(float a,float b,float c); float main() { float a,b,c; float s; char d; loop: printf("输入三角形三边长,以空格隔开 "); scanf("%f %f %f",&a,&b,&c); s=areatri(a,b,c); if(s<=0) printf("error~ "); else printf("area=%f ",s); printf("按1开始新计算,按2退出 "); scanf("%c",&c); d=getch(); if(d=='1') goto loop; if(d=='2') ; } float areatri(float a,float b,float c) { float s,p; if(a>0&&b>0&&c>0) { p=0.5*(a+b+c); s=sqrt(p*(p-a)*(p-b)*(p-c)); return s; } }