C语言如何强制跳出死循环(哪个语句)? 其实就是这一道题:统计从键盘输入一行字符的个数。

 我来答
释宁泥缎
2020-02-07 · TA获得超过3.8万个赞
知道大有可为答主
回答量:1.4万
采纳率:27%
帮助的人:1032万
展开全部
1、while(getchar()!='\n')后面多了一个分号,即多了一个空语句,所以后面的{
n++;}并不是while循环内的语句,只被执行了一次,所以n=1。
2、即使while后面没有多分号,最后结果也是1。这是因为getchar()函数只能从键盘接收一个字符,它不能按照你的期望接收一个字符串,所以程序应改为:
#include

int
main()
{
int
i=0,n=0;
char
*s;
printf("input
a
string:\n");
gets(s);
while(s[i]!='\n');
{
n++;
i++;
}
printf("%d\n",
n);
return
0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
褒翠花虎仪
2019-12-15 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.3万
采纳率:30%
帮助的人:613万
展开全部
你的语法是没问题的,貌似你按回车的时候在windows下是两个字符的组合,所以最好用'\n'来表示结束。你可以试着用这样的方式,你不知道ASCII就用字符代替。
#include"stdio.h"
void
main()
{
int
i=0;
char
a;
while(1)
{
scanf("%c",&a);
i++;
if(a=='\n')
{
//printf("%d\n",
a);
//测试用,输出9
break;
}
}
printf("%d\n",i);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
万俟秋英謇诗
2019-12-14 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.3万
采纳率:34%
帮助的人:954万
展开全部
#include"stdio.h"
void
main()
{
int
i=0;
char
a;
while(1)
{
scanf("%c",&a);
i++;
if(i==13)
break;
}
printf("%d\n",i);
}
这样就行了。i是一个统计的变量,
break可以跳出循环,当她是13的时候,就跳出来了。
不会可以联系我。我教你。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式