求三角形面积的问题
题目是这样的。写程序由标准输入得到一系列三个一组的数,把每组数作为三角形的三条边,计算三角形的面积。注意
在程序里检查输入数据,对不能构成三角形的情况给出错误信息。(问题来自《从问题到程序》第四章
练习18题)
这是我编写的程序,但是不输出结果,语法没问题,应该是算法的问题。
#include<stdio.h>
#include<math.h>
int mianji(double x,double y,double z){
double a=(x+y+z)/2.0,sum;
sum=sqrt(a*(a-x)*(a-y)*(a-z));
return sum;
}/*求三角形面积的函数*/
void main(){
double d=0,sum=0,x,a,b,c;
int count;
while(d!=EOF)
{
while((d=getchar())!=EOF&&(d==' '));/*如果输入的是空格的话,直接用掉。然后读后面的字符*/
if(d==EOF) break;
scanf("%lf",&x);/*没空格了,开始读数字了,我假设除了空格就是数字。*/
a=x;count++; /*第一个数字赋值给a*/
while((d=getchar())!=EOF&&(d==' '));
if(c==EOF) break;
scanf("%lf",&x);
b=x;count++;/*第二个数字赋给b*/
while((d=getchar())!=EOF&&(d==' '));
if(c==EOF) break;
scanf("%lf",&x);
c=x;count++;/*第三个数字赋给c*/
printf("%f",mianji(a,b,c));
while((d=getchar())!=EOF&&(d==' '));
}/*直到出现EOF的是时候,程序结束*/
}
我输入9个数 再输入^z ^z就是EOF 结束字符。
但是不输出结果。百思不得其解啊。请各位大虾们指点指点~~~小弟新手