天天看點

輸入一英文字元串(字元串長度限制在200個字元以内),單詞間僅用一個或多個空格間隔(即沒有标點符号),編寫程式将此字元串中第1個最長的單詞輸出。 輸入輸出樣例: memory has no re

輸入一英文字元串(字元串長度限制在200個字元以内),單詞間僅用一個或多個空格間隔(即沒有标點符号),編寫程式将此字元串中第1個最長的單詞輸出。

輸入輸出樣例:

memory has no return (注:運作時的輸入)

memory (注:運作時的輸出)

include<stdio.h>
int main() {
    char a[200];
	int b[200],c[200],len=0,i,j,max;
	gets(a);
	for(i=0,j=0;i<=199;i++){
        if(a[i]!=32&&a[i]!='\0'){
			len++;
			//len用于記錄每個單詞的長度
		}
		if(a[i-1]!=32&&a[i]==32){
            c[j]=i;//數組c用于記錄每個單詞的末尾的位置
			b[j]=len;//把每個單詞的長度存入一個數組中
			len=0;
			j++;//j用于記錄單詞數,遇到空格時,單詞數+1
		}
		if(a[i]=='\0'){
			c[j]=i;
			b[j]=len;
			break;
		}
			
	}
    max=0;
	for(i=1;i<=j;i++)
        if(b[i]>b[max])
			max=i;//求出單詞的最大長度
	for(i=0;i<=j;i++)
		if(b[i]==b[max])//找出第一個最長的單詞
			break;
	for(j=c[i]-b[i];j<c[i];j++)//通過數組c找到其位置并輸出
		printf("%c",a[j]);
	return 0;
}