• 全部
...

为什么printf和scanf 输入和输出值不一样

teanjing 2013-09-17 01:28:45
#include <stdio.h>
int main(void)
{
float weight;

printf("你的体重:");
getchar();
scanf("%f",&weight);
printf("你的体重是%f",weight);
getchar();
getchar();
return 0;
}
这段代码有问题吗?为什么输入的值和输出不一样呢?输入105,输出显示确是5.000000呢?求解答
...全文
给本帖投票
823 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
teanjing 2013-09-17
  • 打赏
  • 举报
回复
引用 1 楼 mmns 的回复:
int main(void) { float weight; printf("你的体重:"); getchar(); //////这行代码获取1个字符,把1取走了。 scanf("%f",&weight); //////这行代码获取05 printf("你的体重是%f",weight); getchar(); getchar(); return 0; }
原来如此,感谢您的解答!
  • 打赏
  • 举报
回复
引用 1 楼 mmns 的回复:
int main(void) { float weight; printf("你的体重:"); getchar(); //////这行代码获取1个字符,把1取走了。 scanf("%f",&weight); //////这行代码获取05 printf("你的体重是%f",weight); getchar(); getchar(); return 0; }
正解,楼主调试一下就好了
赵4老师 2013-09-17
  • 打赏
  • 举报
回复
代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。 提醒:再牛×的老师也无法代替学生自己领悟和上厕所! 单步调试和设断点调试是程序员必须掌握的技能之一。
soft_and_hard_ware 2013-09-17
  • 打赏
  • 举报
回复
第一点:如果遇到程序运行结果与自己想要的不一样,可以加断点进行跟踪。 第二点:其实,保持控制窗口的函数很多,不一定要用getchar(),例如: #include <stdio.h> #include <stdlib.h> //引入system(char *c) int main(void) { float fWeight = 0.0; printf("请输入您的体重:"); scanf("%f", &fWeight); printf("您的体重为:%f\n", fWeight); system("pause"); return 0; }
神农氏 2013-09-17
  • 打赏
  • 举报
回复
int main(void) { float weight; printf("你的体重:"); getchar(); //////这行代码获取1个字符,把1取走了。 scanf("%f",&weight); //////这行代码获取05 printf("你的体重是%f",weight); getchar(); getchar(); return 0; }

70,018

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧

手机看
关注公众号

关注公众号

客服 返回
顶部