譚浩強 C程序設計 8.10寫一函數,輸入一行字符,將此字符串中最長的單詞輸出。
阿新 • • 發佈:2017-07-23
就會 譚浩強 設計 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寫一函數,輸入一行字符,將此字符串中最長的單詞輸出。