scanf函数中%d用来接收int类型,%f用来接收float类型,%c用来接收char类型,%lf用来接收double类型。
在输入的时候,scanf中双引号中是什么样的,输入就必须严格按照双引号中的格式写。
比如 scanf("%d%d",&a,&b),那么,在输入数据时,只需要输入1空格2回车即可。
对于int float double这些数字类型,%d和%d之间可以加空格,也可以不加空格,编译器能自动忽略掉空格。
但是char类型不行,因为空格也是一个char字符。比如scanf("%c%c",&c1,&c2)和scanf("%c %c",&c1,&c2)的结果是不一样的。
你的代码修改如下,运行结果截图标注了,如有帮助,请帮忙点击我的回答下方的采纳此答案按钮,谢谢。
代码:
#include <stdio.h>
int main()
{
int a,b;
float x,y;
char c1,c2;
scanf("a=%d,b=%d",&a,&b);
scanf("%f %f",&x,&y);
getchar(); //这里接收一下上一次输入的回车符
scanf("%c%c",&c1,&c2);
printf("a=%d,b=%d",a,b);
return 0;
}
你的scanf格式和输入格式对不上,scanf里面没写逗号但是输入里面加了逗号
一般不推荐在scanf里面加入格式,简单写为scanf("%d%d",&a,&b);
,然后输入空格分割的两个整数如12 23
这种即可
哪个是你的输入呢?我建议,你先按照课本一点一点的写。