大佬们能帮我看一下我错哪儿了吗?

又是划水的一天 2019-12-16 03:39:16
#include<stdio.h> int main() { char fh; int i,a,b,c; for(i=0;i<5;i++) { printf("输入符号\n"); fh=getchar(); printf("数字\n"); scanf("%d%d",&a,&b); if(fh=='+') c=a+b; printf("%d\n",c); } return 0; } 第一遍我输的+和两个数没问题, 但循环第二遍后发现无法输入符号了,为什么啊?
...全文
240 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
?True:False 2021-02-04
  • 打赏
  • 举报
回复
#include<stdio.h> int main() { char fh; int i,a,b,c; for(i=0;i<5;i++) { printf("输入符号\n"); fh=getchar(); printf("数字\n"); scanf("%*c%d %d%*c",&a,&b); if(fh=='+') c=a+b; printf("%d\n",c); } return 0; }
  • 打赏
  • 举报
回复
感谢,感谢。我好好看看。
@矛盾综合体 2019-12-16
  • 打赏
  • 举报
回复
这个情况解答了无数个人,所有这里就简单点,第二次输入的时候getchar把\n,也就是回车吃了,所有就一直运行下去了,解决办法就是先吃掉输入缓存区的回车

#include<stdio.h>

int main()
{
    char fh;
    int i,a,b,c;
    for(i=0;i<5;i++)
    {
        printf("输入符号\n");
		if(i>0)
        getchar();
        scanf("%c",&fh);
        printf("数字\n");
        scanf("%d%d",&a,&b);
        if(fh=='+')
		{
			c=a+b;
		}
        printf("%d\n",c);
    }
    return 0;
}

结果 运行环境:gcc 编辑环境:sources insight

13,826

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧