作业帮 > 综合 > 作业

为何我这个程序输出数字总是比正确答案多1

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/28 11:07:39
为何我这个程序输出数字总是比正确答案多1
#includemain(){char a;int n=0;printf("输入一串字符");while(a!='\n');{a=getchar();n++;}printf("该字符个数为:%d",n);}
当你输入回车时,a 通过getchar() 获取后,你的n又自加了一次,while 结束,导致多了1
可以如下改一下:
while(true)
{
a=getchar();
if(a=='\n')
break;
n++;
}
再问: 用getchar();吃掉回车可行不?
再答: 可行
再问: 怎么改??
再答: #include<stdio.h>
void main()
{
char a;
int n= 0;
while(true)
{
a=getchar();
if(a=='\n')
break;
n++;
}
printf("%d\n", n);
}
再问: 不是 我是说用这个getchar();就这段语句
再答: 不明白你的意思。 这样吗: while(getchar()!='\n') n++;
再问: a=getchar(); getchar(); 据说这样可以吃掉回车
再答: 这样就行: #include void main() { char a; int n= 0; while(true) { a=getchar(); getchar(); if(a!='\n') n++; else break; } printf("%d\n", n); } 或者 #include void main() { char a; int n= 0; while(a!='\n') { a=getchar(); getchar(); if(a!='\n') n++; } printf("%d\n", n); }