C语言while循环问题2?

#include<stdio.h>intmain(void){chara;charb;charc;intd=1;intf=2;while(d<f){scanf("%c",... #include <stdio.h>
int main(void){
char a;
char b;
char c;
int d=1;
int f=2;
while(d<f){
scanf("%c",&a);
scanf("%c",&c);
scanf("%c",&b);
while(c=='!'){
printf("%c %c",a,b);
c='a';}
}
return 0;
}
为什么当第二次输入!时,while循环只运行一次?(不是连着输入两次!;是字符!字符这样输入的第二次)
展开
 我来答
格里编程办公技巧
科技发烧友

2021-05-15 · 编程、办公知识分享与学习
格里编程办公技巧
采纳数:434 获赞数:879

向TA提问 私信TA
展开全部

代码有几个错误,一是Scanf格式要用双引号""; 

二是判断要使用==号,=号是赋值。如果是第二个输入!号,while(c='!')一直为ture会死循环。

更多追问追答
追问
问题修改了
还没有解决
焕焕的工科学长
2021-05-15
知道答主
回答量:12
采纳率:0%
帮助的人:2.8万
展开全部

首先来看看你的程序,整体上来说,还是没有大的问题的。不过,需要注意的是条件语句那里,关系运算符有,大于>,小于<,等于==,不等于!=,大于等于>=,小于等于<=这几种。你的第二个while处的条件判断语句写错了,写成了赋值语句。

希望我的回答能够帮助你解决你当前的问题。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
快乐翔云740
2021-05-15 · TA获得超过383个赞
知道答主
回答量:152
采纳率:69%
帮助的人:34.4万
展开全部
首先明确scanf的作用,scanf从输入流中获取需要的数据,scanf中格式控制为%c的时候,scanf将从输入流中取得一个数据,并将这个数据放在某一个地址的空间中,你输入两次'!',可能被第一个while中的三个scanf吃干净了,但最重要的是,你的scanf很明显写错了,第二个参数是一个地址,你这运行必错。
更多追问追答
追问
不是连着输入两次!;是字符!字符这样输入的第二次
追答
你scanf写错了,改了吗,你的'!'是用来确定什么时候输入结束的吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式