作者在 2011-03-28 15:07:47 发布以下内容
Description
找出一个英文字符串中第一个最长的英文单词,字符串中的各英文单词以一个或多个空格分隔或标点符号分隔。如“I am a student.”最长英文单词为”student”。
Input
输入一串字符串。(字符个数不超过500,含标点符号和英文字母,最长英文单词的字符数不超过20)
Output
最长单词,占一行;
Sample Input
I am lucky.student went to school.
Sample Output
student
Source
#include <iostream> #include<stdio.h> #include<string.h> using namespace std; int max(int a,int b) { return a>b?a:b; } int main() { char a[20][50],*p=0; int m,i,j; for(i=0;i<20;i++) { for(j=0;j<50;j++) { a[i][j]=getchar(); if(a[i][j]==' '||a[i][j]=='\n') { a[i][j+1]='\0';break;} } if(a[i][j]=='\n') break; } for(m=0,j=0;j<=i;j++) m=max(strlen(a[j]),m); for(i=0;j<=j;i++) if(m==strlen(a[i])) {cout<<a[i]; break;} return 0; }
|
首先我说说,这个题目算法有点问题,但结果正确,有没有更好的算法