C语言 scanf 函数解析:输入 55566 7777abc 后 y 的值为 7777.0 的原因
以下程序段:
int j;float y;char name[50];
scanf("%2d%f%s",&j,&y,name);
当执行上述程序段,从键盘上输入 55566 7777abc 后,y 的值为 7777.0。
这是因为在 scanf 函数中:
%2d表示读取一个整数,但限制最大位数为 2。因此,输入的55566被截断为55赋值给了变量j。%f表示读取一个浮点数。输入7777被识别为浮点数,而abc部分被忽略。因此,输入的7777被赋值给了变量y。%s表示读取一个字符串,但它只能读取非空白字符序列。因此,输入的abc并未被读取到name数组中。
所以,y 的值为 7777.0。
原文地址: https://www.cveoy.top/t/topic/Usx 著作权归作者所有。请勿转载和采集!