读书人

为何printf和scanf 输入和输出值不一样

发布时间: 2013-09-18 14:17:40 作者: rapoo

为什么printf和scanf 输入和输出值不一样
#include <stdio.h>
int main(void)
{
float weight;

printf("你的体重:");
getchar();
scanf("%f",&weight);
printf("你的体重是%f",weight);
getchar();
getchar();
return 0;
}
这段代码有问题吗?为什么输入的值和输出不一样呢?输入105,输出显示确是5.000000呢?求解答
[解决办法]
int main(void)
{
float weight;

printf("你的体重:");
getchar(); //////这行代码获取1个字符,把1取走了。
scanf("%f",&weight); //////这行代码获取05
printf("你的体重是%f",weight);
getchar();
getchar();
return 0;
}
[解决办法]
第一点:如果遇到程序运行结果与自己想要的不一样,可以加断点进行跟踪。
第二点:其实,保持控制窗口的函数很多,不一定要用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;
}

读书人网 >C语言

热点推荐