本人是c语言程序初学者,写了一道程序但是不可以运行,麻烦高手帮我看看
发布网友
发布时间:2022-10-04 08:12
我来回答
共3个回答
热心网友
时间:2023-10-13 22:16
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;
}
热心网友
时间:2023-10-13 22:17
void area(double a, double b,double c)
{
double w,x; // 不用再定义s,d
w=(a+b+c)/3;
x=w*(w-a)*(w-b)*(w-c);
s=sqrt(x);
}
void zc( double a,double b,double c)
{
d=a+b+c;
}
热心网友
时间:2023-10-13 22:18
原型申明部分的下面两句:
void area(double a,double b,double c);
void zc(double a,double b,double c);
修改为:
double area(double a,double b,double c);
double zc(double a,double b,double c);
函数调用部分的下面两句:
s=area(a,b,c);
d=zc(a,b,c);
修改为:
area(a,b,c);
zc(a,b,c);
最后的函数定义下面的这一段:
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;
}
修改为:
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);
return s;/*这句是添加的*/
}
void zc( double a,double b,double c)
{
double d;
d=a+b+c;
return d;/*这句是添加的*/
}