8.10寫一函數,輸入一行字符,將此字符串中最長的單詞輸出。


 代碼量稍微一大,就會出現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);
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM