(问题讨论)连续输入输出整型浮点数字符最后无法输出字母

代码展示

#include<stdio.h>

int main(void)
{
	int a,b;
	float x,y;
	char c1,c2;
	scanf("%d %d",&a,&b);
	printf("a=%d b=%d\n",a,b);
	scanf("%f %f",&x,&y);
	printf("x=%.2f y=%.2f\n",x,y);
	scanf("%c %c",&c1,&c2);
	printf("c1=%c c2=%c",c1,c2);
	
 } 

运行结果

 

问题发现

发现前面的1 2整形和3.4 5.5的浮点数都被打印但是a b的字符却出现了乱码

解决方法

int main(void)
{
	int a,b;	
	char c1, c2;
	float x, y;
	
	scanf("%c %c", &c1, &c2);
	printf("c1= %c c2= %c\n", c1, c2);
	scanf("%d %d",&a,&b);
	printf("a=%d b=%d\n", a,b);
	
	scanf("%f %f",&x,&y);
    printf("x=%.1f y=%.1f\n", x,y);
	

	
}

将打印字符放在最前面

问题分析

逻辑上打印顺序不会导致错误乱码,但是在运行结果上看输入字符放在整形打印和字符打印后都会出现打印出错的现象。

希望有知道底层原因的大佬帮助解决一下出现这个现象的原因

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PYGG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值