#include<stdio.h>int main(){int x=100;long int y;char ch;float f;printf("请分别输入一个字符、长整数、一个单精度浮点数:\n");printf("注意数据之间的分隔符\n");scanf("%d%dl%c%f",&x,&y,&ch,&f);printf("x=%d,y=%dl,ch:%c,f:%f\n", x, y,ch,f);return 0;}不知道是不是我程序有错,第一次运行的时候输入:a 45234 123.45结果是x=100 y=45234 ch:a f:1.234500
第二次结果如图,求大神解答
首先:
scanf是不区分空格的,你可以这样改:
scanf("%d,%d,%c,%f",&x,&y,&ch,&f);
其次:
printf("请分别输入一个字符、长整数、一个单精度浮点数:\n");
scanf("%d%dl%c%f",&x,&y,&ch,&f);
输入:a 45234 123.45
这三者的关系很混乱...不对应啊
printf只要输入三个字符
scanf中却是4个
输入只输入了3个...
最不靠谱的是三个输入的值的顺序和scanf中变量顺序的还不对应...
改一下:
printf("请分别输入一个整形、长整数、一个字符、一个单精度浮点数:\n");
printf("注意输入的顺序和数据之间的分隔符\n");
scanf("%d,%ld,%c,%f",&x,&y,&ch,&f);
最后:
scanf("%d%dl%c%f",&x,&y,&ch,&f);
其中长整形也是用%ld而不是%dl
输入:123,456,t,6.7
输出结果:x=123,y=456,ch:t,f:6.700000
什么四个数字
追答x,y,ch,f四个数字