题目描述
一个以‘.’结尾的简单英文句子,单词之间用空格分隔,没有缩写形式和其它特殊形式。
输入格式
一个以‘.’结尾的简单英文句子(长度不超过500),单词之间用空格分隔,没有缩写形式和其它特殊形式。
输出格式
该句子中最长的单词。如果多于一个,则输出第一个。
代码:
#include<iostream>
using namespace std;
int main(){
string a;
getline(cin,a);//有空格要用getline
int wordlength[500]={};//每个单词长度
int temp=0;//每个单词长度(临时)
int k=0;//wordlength长度(数组内数字量)
for(int i=0;i<a.size();i++){
if(a[i]!=' '){
temp++;
}
else{//该单词结束
wordlength[k]=temp;//该单词长度
temp=0;//长度清零
k++;//数字量(下标)+1;
}
}
int max=wordlength[0];//打擂台,假设第一个单词最长
int maxpos=1;//最长单词是第几个
for(int i=1;i<k;i++){//穷举
if(a[i]>max){
max=a[i];
maxpos=i+1;//因为下标从0开始,而第一个单词长度存在wordlength[0]中,所以要+1
}
}
int c=0;//用于寻找最长单词
for(int i=0;i<a.size();i++){
if(a[i]==' '){
c++;
}
if(c=maxpos){
cout<<a[i];
}
}
为何WA,神犇救我