runout是什么意思:C语言难题

来源:百度文库 编辑:高校问答 时间:2024/05/08 04:10:43
#include<stdio.h>
#include<math.h>
void main()
{
float a,b,c,s,area;
printf("请输入三角形三边长:\n");
scanf("%f,%F,%f",&a,&b,&c);
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%7.2f,b=%7.2f,c=%7.2f\n",a,b,c);
printf("该三角形的面积:area=%7.2f\n",area);
}
答案很古怪,没有error,warning
不行啊,没错误但数据还是不对,输入3,4,5看看,a,b,c显示的都不对
编译环境是vc++6.0

问题出在 scanf("%f,%F,%f",&a,&b,&c);

这么写的话,在输入a,b,c时必须输入“,”

即输入的边长为: 3,4,5 (Enter)

就可以得到正确结果

去掉main前边的void就没有错误了。我刚调试过了。

我猜问题是出在那个F上
我用TC试了一下
如果是用F的话会得不到输出
而f就能得到
另外就象楼上说的那样可能是输入时你忘了变量间的逗号!

#include<stdio.h>
#include<math.h>
void main()
{
float a,b,c,s,area;
printf("请输入三角形三边长:\n");
scanf("%f,%f,%f",&a,&b,&c);/*那个F换成f,输入时要有格式限制必须以逗号隔开*/
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%7.2f,b=%7.2f,c=%7.2f\n",a,b,c);
printf("该三角形的面积:area=%7.2f\n",area);
getch();
}

把第七行的:
scanf("%f,%F,%f",&a,&b,&c);
中的 F 改成 f
就行了!试一下吧!

#include<stdio.h>
#include<math.h>
main()
{
double a,b,c,s,area;
printf("请输入三角形三边长:\n");
scanf("%lf%lf%lf",&a,&b,&c);
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%7.2lf,b=%7.2lf,c=%7.2lf\n",a,b,c);
printf("该三角形的面积:area=%7.2lf\n",area);
}