C语言如何强制跳出死循环(哪个语句)? 其实就是这一道题:统计从键盘输入一行字符的个数。
3个回答
展开全部
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;
}
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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的语法是没问题的,貌似你按回车的时候在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);
}
#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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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的时候,就跳出来了。
不会可以联系我。我教你。
void
main()
{
int
i=0;
char
a;
while(1)
{
scanf("%c",&a);
i++;
if(i==13)
break;
}
printf("%d\n",i);
}
这样就行了。i是一个统计的变量,
break可以跳出循环,当她是13的时候,就跳出来了。
不会可以联系我。我教你。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询