为何我这个程序输出数字总是比正确答案多1
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/07 00:31:30
为何我这个程序输出数字总是比正确答案多1
#includemain(){char a;int n=0;printf("输入一串字符");while(a!='\n');{a=getchar();n++;}printf("该字符个数为:%d",n);}
#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); }
可以如下改一下:
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); }
帮我解释一下这个C++程序的输出语句好吗?
为什么我写的程序总是这个报错?
请大家帮我看看这个程序怎么不能得出正确答案
求帮、我总是算不对有一个两位数,其十位数字比个位数字小3,如果这个两位数大于20而小50,求这个两位数.
这个程序语句输出后是什么啊
为何我总是很粗心
帮我看看这个程序哪里出错了 怎么输出的是负数
如何编写程序“输出1~999中能被3整除,而且至少有一位数字是5的所有数字”?
检查下我的程序输入一个正整数,计算该数各位数字的和,并输出倒序数
大家帮我看看这个lingo小程序啊,总是说没有可行解
用For语句求50—100的所有奇数累加和,正确答案是1875,可我写的程序总是算出来1275.为什么 求解
从数字1-35中随机输出6个数,从数字1-16中随机输出1个数,用VF怎么编程序?