高手看看c语言程序那里错了,输出不对啊

#include<stdio.h>main(){inti=0;chara;printf("猜猜我是哪个字母,最多猜5次\n");for(i=0;i<5;i++){scan... #include<stdio.h>
main()
{
int i=0;
char a;
printf("猜猜我是哪个字母,最多猜5次\n");
for (i=0;i<5;i++)
{
scanf("%c",&a);
if (a=='G')
{
printf("被你猜中了\n");
break;
}
else if(a!='G')
printf("你猜错了,接着猜吧\n");
}
}
展开
 我来答
Xiao_tian1994
2014-01-12 · 超过12用户采纳过TA的回答
知道答主
回答量:32
采纳率:0%
帮助的人:23.2万
展开全部
  #include<stdio.h>

  void main()
  {
  int i=0;
  char a;

  printf("猜猜我是哪个字母,最多猜5次\n");
  for (i=0;i<5;i++)
  {
  scanf("%c",&a);
  fflush(stdin); /*这里是关键*/
  if (a=='G') {printf("被你猜中了\n");break;}
  else
  {
  if(i == 4) printf("Sorry.没机会喽。\n");
  else printf("你猜错了,接着猜吧\n");
  }
  }
  }
  
呃…… 强迫症的我……帮你写完整了…… = =
反正关键就是清空缓存区,就是用一下 fflush();
以后写什么数组什么的,经常要清空一下……
啊! 百度拙计的排版!表示受不了了……
松甜恬0Je4ba
2014-01-12 · TA获得超过2.6万个赞
知道大有可为答主
回答量:7475
采纳率:100%
帮助的人:3314万
展开全部
scanf("%c",&a);
输入一个字符后,你紧接着输入了一个回车符,回车符也是字符的一种啊,所以,它直接把回车符作为第二次输入的字符了。

不知道你使用的是什么环境,你需要在scanf输入后,清空一下输入缓冲区。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shine1991
科技发烧友

2014-01-12 · 智能家居/数码/手机/智能家电产品都懂点
知道顶级答主
回答量:4.7万
采纳率:82%
帮助的人:2.3亿
展开全部
#include<stdio.h>
#include<stdlib.h>//<----------
int main()
{
int i=0;
char a;
printf("猜猜我是哪个字母,最多猜5次\n");
    for (i=0;i<5;i++)
{
        scanf("%c",&a);
        fflush(stdin);//<--------
      if (a=='G')
 {
 printf("被你猜中了\n");
     break;
 }
 else if(a!='G')
printf("你猜错了,接着猜吧\n");
 }
 return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
福泽佑之IN
2014-01-12 · TA获得超过2473个赞
知道小有建树答主
回答量:727
采纳率:0%
帮助的人:687万
展开全部
#include<stdio.h>
main()
{
    int i=0;
    char a;
    printf("猜猜我是哪个字母,最多猜5次\n");
    for (i=0; i<5; i++)
    {
        scanf("%c",&a);
        getchar();
        if (a=='G')
        {
            printf("被你猜中了\n");
            break;
        }
        else if(a!='G')
            printf("你猜错了,接着猜吧\n");
    }
}

在scanf()语句后面加上一句getchar();因为你按回车键的时候也算一个字符,就会打两行。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友348b3d3b3
2014-01-12 · 超过22用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:52.2万
展开全部
大写的G,不是小写。另外回车后输入一个符串和一个回车符,所以要加一个scanf吃掉回车符
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
众里寻他0822
2014-01-12 · TA获得超过136个赞
知道小有建树答主
回答量:263
采纳率:100%
帮助的人:249万
展开全部
你把else if 改成 else试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式