如何用C++输出一句中最长的单词
题目要求输入一句英文语句, 以句号结尾(.), 不包含任何其他符号(除空格之外)。 然后直接输出最长的一个单词。 以下是我的代码, 不知道问题到底出在哪里还求各位指教。 #include <iostream>using namespace std;
int main()
{
char s;
cin.getline(s,80);
int maxlen = 0;
int tmplen = 0;
int last = 0;
for (int i = 0; s != '\0'; i++)
{
if (s == '.')
{
if (maxlen < tmplen)
{
maxlen = tmplen;
tmplen = 0;
last = i;
}
break;
}
else if (s == ' ')
{
if (maxlen < tmplen)
{
maxlen = tmplen;
tmplen = 0;
last = i;
}
}
else
tmplen++;
}
for (int i = last - maxlen-1; i < last - 3; i++)
cout << s;
return 0;
} 最后的for循环的判断条件修改为
i<last BngThea 发表于 2018-4-4 08:56
最后的for循环的判断条件修改为
i
我试过了还是不行{:10_285:} 这样是否是你想要的?
#include <iostream>
using namespace std;
int main(void)
{
char s;
cin.getline(s, 80);
int maxlen = 0;
int tmplen = 0;
int last = 0;
for(int i = 0; s != '\0'; i++)
{
if(s == '.')
{
if(maxlen < tmplen)
{
maxlen = tmplen;
tmplen = 0;
last = i;
}
break;
}
else if(s == ' ')
{
if(maxlen < tmplen)
{
maxlen = tmplen;
tmplen = 0;
last = i;
}
}
else
tmplen++;
}
//for(int i = last - maxlen - 1; i < last - 3; i++)
for(int i = last - maxlen; i < last; i++)
cout << s;
return 0;
}
0 01 012 0123.
0123请按任意键继续. . . 将i<last-3改为i<last就行了啊!
页:
[1]