c++oj上一道题目这样写会导致超时……但是我不清楚改怎么改,求解答

#include<iostream>#include<ctype.h>#include<stdio.h>usingnamespacestd;intmain(){intxi... #include <iostream>
#include <ctype.h>
#include <stdio.h>
using namespace std;
int main()
{
int xiao,da,kongge;
char s;
while (true)
{
for (xiao=0,da=0,kongge=0;(s=getchar())!='\n';)
{
cout<<s<<endl;
if (s>=65 && s<=90) da++;
if (s>=97 && s<=122) xiao++;
if (s==32) kongge++;
}
cout<<xiao<<" "<<da<<" "<<kongge<<endl;
}
return 0;

}
展开
 我来答
第三号天空3
推荐于2016-01-31 · 超过27用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:30.9万
展开全部
不应该使用while (true),这句代码会使你while的主体里面没有存在跳出循环的条件,这样就算for循环在接收到换行符后结束并输出xiao,da,kongge等信息,while循环也会继续等待下一行输入,由此导致的超时。
更多追问追答
追问
那我如何跳出循环?
追答
#include 
#include
#include
using namespace std;
int main()
{
int xiao,da,kongge;
char s;

for (xiao=0,da=0,kongge=0;(s=getchar())!='\n';)
{
cout=65 && s=97 && s<=122) xiao++;
if (s==32) kongge++;
}
cout<<xiao<<" "<<da<<" "<<kongge<<endl;

return 0;

}
佐助boy
2014-10-03 · 超过67用户采纳过TA的回答
知道小有建树答主
回答量:195
采纳率:0%
帮助的人:154万
展开全部
死循环了吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
weidong3630
2014-10-03 · 超过42用户采纳过TA的回答
知道小有建树答主
回答量:322
采纳率:28%
帮助的人:78.2万
展开全部
什么超时,没发现啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式