C语言的输出问题?

来源:百度知道 编辑:UC知道 时间:2024/05/16 17:05:48
当输入流为"56789012345a72"时,执行下面的程序段
#include "stdio.h"
int main(void)
{
int i,j;
float x,y;
char c;
scanf("%2d%f%d%f%c%d",&i,&x,&y,&c,&j);
printf("%2d,%f,%d,%f,%c,%d",i,x,y,c,j);
return 0;

}
后,变量i,j,x,y,c中的内容各是什么?
输出结果:56,789012352.000000,-2147483648,-1.#QNAN0,?0
有点不明白,为什么是这结果?

肯定是错误的结果啊
scanf("%2d%f%d%f%c%d",&i,&x,&y,&c,&j);
当像你那么输入时 56789012345a72
因为i是长度为2 所以判断把56给了i
而后面的数字全部给了x 后面的y c j都没有值 所以输出的是错误的啊
劝你不要研究这种错误的格式,现在很多人都钻牛角尖 明知道是错误的格式还非要这么用 研究这个没用的

你着个是 格式错误了``````

scanf("%2d%f%d%f%c%d",&i,&x,&y,&c,&j);

你输入的是56789012345a72
在着 "%2d%f%d%f%c%d" 默认的输入是有一个空格的```
输入的时候在输入完毕 一个值 准备输入下一个数字的时候 因该有空格才对`````

scanf("%2d%f%d%f%c%d",&i,&x,&y,&c,&j);
当像你那么输入时 56789012345a72
因为i是长度为2 56 给了 i
后面我就 不说了````

你只要 输入的时候注意点就OK了`````

有什么不懂 给我来短信!

里面不因该有空格