关于C语言printf的使用,为何输出乱码
源代码如下:#include<stdio.h>intmain(){inta,b;floatx,y;charc1,c2;scanf("a=%db=%d",&a,&b);sc...
源代码如下:
#include<stdio.h>
int main()
{
int a,b;
float x,y;
char c1,c2;
scanf("a=%db=%d",&a,&b);
scanf("%f%e",&x,&y);
scanf("%c%c",&c1,&c2);
printf("%d\n%d\n%f\n%e\n%c\n%c",&a,&b,&x,&y,&c1,&c2);
return 0;
}
比如我想输出a=3 b=7 x=8.5 y=71.82 c1=A c2=a 可为何输出结果是下图中的。。。?错在了哪呢。。 展开
#include<stdio.h>
int main()
{
int a,b;
float x,y;
char c1,c2;
scanf("a=%db=%d",&a,&b);
scanf("%f%e",&x,&y);
scanf("%c%c",&c1,&c2);
printf("%d\n%d\n%f\n%e\n%c\n%c",&a,&b,&x,&y,&c1,&c2);
return 0;
}
比如我想输出a=3 b=7 x=8.5 y=71.82 c1=A c2=a 可为何输出结果是下图中的。。。?错在了哪呢。。 展开
2个回答
展开全部
这里面错误很多,首先scanf里不要用无关的字符,直接scanf("%d%d",&a,&b)就行了(输入ab的时候中间用英文空格或TAB键空开),%e一般是用在printf里,在scanf是不用的,最重要的错误是printf的时候直接写变量名就行了,另外有一个隐藏的错误,当你在scanf的后面用scanf("%c的时候,需要先用getchar()或者fflush(stdin); 清除缓冲区,否则会导致你那个C1取到的是上一行的换行符,更改如下
#include<stdio.h>
int main() {
int a,b;
float x,y;
char c1,c2;
printf("input a b:");
scanf("%d%d",&a,&b);
printf("input x y:");
scanf("%f%f",&x,&y);
fflush(stdin);
printf("input c1c2:");
scanf("%c%c",&c1,&c2);
printf("a=%d\nb=%d\nx=%f\ny=%e\nc1=%d\nc2=%c",a,b,x,y,c1,c2);
return 0;
}
追问
谢谢(☄⊙ω⊙)☄
啊,对啊那么明显的错误。。
scanf("a=%db=%d",&a,&b);这句是书上写的大概是要练习输入格式要一致吧
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询