论坛: 编程破解 标题: C语言问题求助 复制本贴地址    
作者: 幻羽 [hymailto]    论坛用户   登录
本帖由 [日月双星] 从 << 菜鸟乐园>> 转移而来

各位大侠,小弟有一个问题请教。
这是我从书上抄的C代码。但运行结果总是不对,不知道是怎么回事。
#include "stdio.h"
main()
{
float a=0,b=0,c=0;
float area=0,s=0;
printf("请输入三角形的三边a,b,c:");
scanf("%f%f%f",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
{
s=(a+b+c)/2.0;
area=sqrt((s*(s-a)*(s-b)*(s-c));
printf("三角形面积area=%f",area);
}
}
比如我输入a=3,b=4,c=5很明显,结果应该是6
但运行后结果却是-32636.0000不知道是为什么。

地主 发表时间: 06-03-18 10:56

回复: jhkdiy [jhkdiy]   版主   登录
根据你的输入格式 scanf("%f%f%f",&a,&b,&c);
你在输入的时候应该直接输入各边长,例如:
C:\>456
4、5、6则代表3条边。

B1层 发表时间: 06-03-20 19:13

回复: balsai [balsai]   论坛用户   登录
只要各数据之间用空格隔开就可以了

B2层 发表时间: 06-03-20 23:15

回复: sunwu [sunwu]   论坛用户   登录
你好。替你找到了毛病所在。
你在程序中使用了sprt函数,而这个函数,在math.h中,你在程序包含中,未将此文件包含其中,所以会有错误的结果,你在文件头中加上一句 #include <math.h>即可。
你自己再试一下。

B3层 发表时间: 06-03-21 11:26

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号