为什么该程序max变量无法保存最大数据
题目: 一个以'.'结尾的简单英文句子,单词之间用空格分隔,没有缩写形式和其它特殊形式。输入: 一个以'.'结尾的简单英文句子(长度不超过500),单词之间用空格分隔,没有缩写形式和其它特殊形式
输出: 该句子中最长的单词。如果多于一个,则输出第一个
以下程序中的max想用来记录最长单词后面一个位置的下标,但是不能记录成功,只能记下最后一个单词后面一个位置的下标
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int main()
{
int q=0,max=0;
bool w=1;
char a[500];
int b[500];
gets(a);
b[0]=-1;
for(int i=0;i<strlen(a);i++)
{
if(a[i]==' '||a[i]=='.')
{
q++;
b[q]=i;
if((b[q]-b[q-1])>max)
max=q;
}
}
for(int i=b[max-1]+1;i<b[max];i++)
cout<<a[i];
return 0;
}