openjudge 计算概论 字符串 4:最长单词2

来源:互联网 发布:linux下卸载jdk1.7 编辑:程序博客网 时间:2024/04/30 03:01
4:最长单词2
查看 提交 统计 提问
总时间限制: 1000ms 内存限制: 65536kB
描述
一个以'.'结尾的简单英文句子,单词之间用空格分隔,没有缩写形式和其它特殊形式


输入
一个以'.'结尾的简单英文句子(长度不超过500),单词之间用空格分隔,没有缩写形式和其它特殊形式
输出
该句子中最长的单词。如果多于一个,则输出第一个
样例输入
I am a student of Peking University.
样例输出

University


#include <stdio.h>#include <stdlib.h>#define N 510int main(){    char a[N];    int i,j=0,count[N],b[N],n,k,max1,temp;    for(i=0; i<N; i++)    {        count[i]=0;        b[i]=0;    }    gets(a);    for(i=0; a[i]!='.'; i++)//j代表有几个单词,count[j]表示一个单词的长度,b[j]表示每个单词开始位置    {        if(a[i]!=' ')            count[j]++;        else        {            j++;       //j++要放前面,这样默认从j=0处记第一个单词的位置,有多个空格也无所谓,count计数为零。            b[j]=i+1;//i是空格的位置,加一表示单词开始位置        }    }    //for(i=0; i<j+1; i++)    // printf("%d   %d\n",count[i],b[i]);    n=j+1;    temp=count[0];    max1=0;    for(i=1;i<n; i++)        if(temp<count[i])        {            temp=count[i];            max1=b[i];        }        //printf("%d",max1);    i=max1;    while(a[i]!=' '&&a[i]!='.')    {        printf("%c",a[i]);        i++;    }    return 0;}



0 0
原创粉丝点击