C语言scanf的输入格式的小坑

刚上机的学生发了一段代码过来,根据边长求三角形面积,说没有输出,语法也没错误,跟书本上的也差不多,代码如下:

#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 就出现了格式匹配问题.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值