1. 程式人生 > >譚浩強 C程序設計 8.10寫一函數,輸入一行字符,將此字符串中最長的單詞輸出。

譚浩強 C程序設計 8.10寫一函數,輸入一行字符,將此字符串中最長的單詞輸出。

就會 譚浩強 設計 nbsp get urn log i++ 代碼

代碼量稍微一大,就會出現bug,浪費很多時間,繼續努力。

#include <stdio.h>

void main(){
    void maxLen(char str[50]);
    char str[50];
    gets(str);
    maxLen(str);
}

void maxLen(char str[50]){
    int i,j=1,t=-1,start=0,m;
    int maxNum(int num[50]);
    int num[50]={0};
    
    num[0]=-1;//num[1]放第一個單詞的長度,num[2]放第二個單詞的長度,。。。
for(i=0;i<50;i++){ if(str[i]== || str[i]==\0) {num[j]=i-t-1;t=i;j++; } } //找出num[j]最大時的下標m m=maxNum(num); //計算最長字符串的開始位置 for(i=1;i<m;i++){ start += (num[i]+1); } //輸出最長字符串 for(i=start;i<start+num[m];i++){ printf("%c",str[i]); } printf(
"\n"); } int maxNum(int num[50]){ int i,j; int max=num[0];//num[0]=-1 for(i=0; i<50; i++){ if(max<num[i]){max=num[i]; j=i;} } return (j); }

譚浩強 C程序設計 8.10寫一函數,輸入一行字符,將此字符串中最長的單詞輸出。