关于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 可为何输出结果是下图中的。。。?错在了哪呢。。
展开
 我来答
syht2000
高粉答主

2019-03-25 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部

这里面错误很多,首先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);这句是书上写的大概是要练习输入格式要一致吧
百度网友3b5a5d8
2019-03-25 · TA获得超过1229个赞
知道大有可为答主
回答量:1279
采纳率:83%
帮助的人:130万
展开全部
你好,
printf("%d\n%d\n%f\n%e\n%c\n%c",&a,&b,&x,&y,&c1,&c2);
建议改为:
printf("%d\n%d\n%f\n%e\n%c\n%c", a, b, x, y, c1, c2);
祝你生活愉快。(ps:另一个答案是正解)
追问
谢谢。。。这么明显的错误
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式