刚上机的学生发了一段代码过来,根据边长求三角形面积,说没有输出,语法也没错误,跟书本上的也差不多,代码如下:
#include <stdio.h>
#include <math.h>
int main()
{
float a,b,c,s,p;
printf("请输入三角形边长a,b,c:\n");
scanf("%f%f%f\n",&a,&b,&c);
p=(a+b+c)/2 ;
s=sqrt(p * (p-a) * (p-b) * (p-c) );
printf("s=%f\n",s);
return 0;
}
我让他在debug模式下看a,b,c获取的用户输入值,结果是3个数的赋值一直不成功,都卡在等待输入结束里,其实跟输入格式有关,如果按照下图的格式输入(加一个换行符\n)是可以获得正确结果的
对比看效果:
备注:这是C语言新手经常容易范的错误,受printf 影响,都喜欢在末尾加换行符\n,遇到scanf 就出现了格式匹配问题.