本人是c语言程序初学者,写了一道程序但是不可以运行,麻烦高手帮我看看

来源:百度知道 编辑:UC知道 时间:2024/05/28 23:49:19
#include "stdio.h"
#include "math.h"
void area(double a,double b,double c);
void zc(double a,double b,double c);
void main()
{
double a,b,c,d,s;
if (a+b>c&&a+c>b&&b+c>a)
{
area(a,b,c);
zc(a,b,c);
printf("d=%lf,s=%lf",d,s);
}
else
printf("输入的数据不符合三角形条件,不能计算!");
}
void area(double a, double b,double c)
{
double w,x,s;
w=(a+b+c)/3;
x=w*(w-a)*(w-b)*(w-c);
s=sqrt(x);
}
void zc( double a,double b,double c)
{
double d;
d=a+b+c;
}
这道程序的题目是
实训题2:编写程序,输入一个三角形的三条边a,b,c,如果这三条边长符合构成一个三角形条件,则分别计算这个三角形的周长d和面积s,否则输出提示信息“输入数据不符合三角形条件,不能计算!”。面积计算公式如下:
s=(w*(w-a)*(w-b)*(w-c))这整个开根号(根号打不出来)
其中:w=(a+b+c)/3

要求:将求面积的功能写成函数 area(a,b,c),将求周长功能定义成函数zc(a,b,c),主函数输入a,b,c后,若符合条件则调用函数计算并输出。

1.函数设计有问题。函数体里计算出了结果,但是没有赋给主函数中的变量s和d。
2.仔细看看题目,你给的公式不正确。w应该是半周长=(a+b+c)/2。
正确程序:
#include "stdio.h"
#include "math.h"
double area(double a,double b,double c);
double zc(double a,double b,double c);
void main()
{
double a,b,c,d,s;
printf("输入三边:");
scanf("%lf%lf%lf",&a,&b,&c);
if (a+b>c&&a+c>b&&b+c>a)
{
s=area(a,b,c);
d=zc(a,b,c);
printf("d=%lf,s=%lf",d,s);
}
else
printf("输入的数据不符合三角形条件,不能计算!");
}
double area(double a, double b,double c)
{
double w,x,s;
w=(a+b+c)/2;
x=w*(w-a)*(w-b)*(w-c);
s=sqrt(x);
return s;
}
double zc( double a,double b,double c)
{
double d;
d=a+b+c;
return d;
}

H

void area(double a, double b,double c)
{
double w,x; // 不用再定义s,d
w=(a+b+c)/3;