鱼C论坛

 找回密码
 立即注册
查看: 1908|回复: 5

简单的while问题(为什么一个循环a=a+1执行2次)

[复制链接]
发表于 2014-8-29 18:04:01 | 显示全部楼层 |阅读模式
5鱼币
本帖最后由 风之残月 于 2014-11-9 22:40 编辑

#include<stdio.h>
#include<conio.h>
void main()
{
int a;
a=0;
char s=0;
while(s!='0')
{
a=a+1;               //为什么一个循环a=a+1执行2次
printf("a=%d\n",a);
scanf("%c",&s);
  switch(s)
  { case '1':
   printf("有点烦\n ");
   break;
  case '2':
      printf("无聊\n");
        break;
  }
  }

    }

最佳答案

查看完整内容

你在scanf()语句上面加上一行fflush(stdin);就OK了。fflush(stdin);这行代码的意思是清空缓冲区数据。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-8-29 18:04:02 | 显示全部楼层
你在scanf()语句上面加上一行fflush(stdin);就OK了。fflush(stdin);这行代码的意思是清空缓冲区数据。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-8-29 20:50:42 | 显示全部楼层
缓存未清空
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-8-30 01:14:55 | 显示全部楼层
scanf("%c",&s);
getchar();  // 用这个函数吃掉 回车 就可以了

你应该是在学C语言吧 你的后缀是不是写成了CPP ?
int a;
a=0;
char s=0;
C语言赋值应在定义后面 或定义时赋值  你这样写会报错的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-8-30 20:28:13 | 显示全部楼层
爆破2014 发表于 2014-8-30 01:14
scanf("%c",&s);
getchar();  // 用这个函数吃掉 回车 就可以了

谢谢提醒,我现在才开始用vc++,很多地方也是不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-9-11 20:13:39 | 显示全部楼层
来看看了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-21 16:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表