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;
} 展开
#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个回答
展开全部
不应该使用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;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询