C语言的scanf问题

来源:百度知道 编辑:UC知道 时间:2024/05/22 01:33:31
如果我把这两个数f=890121,g=0.123456789,按照%f格式输入,而不按照%lf输入,输出是%f,为什么运行结果是f=-NAN
g=0.000000 可以帮我仔细解释一下么~感谢
能否仔细些~f,g是float型的啊

#include <stdio.h>

void main()
{
float f, g;
scanf("f=%f", &f);
scanf("g=%f", &g);
printf("f=%f\ng=%f", f, g);
}

输入
f=890121g=0.123456789
结果
f=890121.000000
g=0.123457

1.scanf函数的一般形式
scanf(格式控制,地址表列)
int scanf(char *format[,argument,...]);
“格式控制”的含义同printf函数;“地址表列”是由若干个地址组成的表列,可以是变量的地址,或字符串首地址。
scanf()函数返回成功赋值的数据项数,出错时则返回EOF。
例题 scanf函数输入数据。
#include<stdio.h>
void main(){
int a,b,c;
printf("input a,b,c\n");
scanf("%d%d%d",&a,&b,&c);
printf("a=%d,b=%d,c=%d",a,b,c);
}

格式字符 说明

%a 读入一个浮点值(仅C99有效)
%A 同上
%c 读入一个字符
%d 读入十进制整数
%i 读入十进制,八进制,十六进制整数
%o 读入八进制整数
%x 读入十六进制整数
%X 同上<