1樓:鷹弈
gets(a) 輸入字串;
a[i] 代表第i個字元;
word_num 代表單詞個數;
in_word 為控制變數與a[i]=' '(空格)聯絡;
第一步:輸入字串;
第二步:初始化 word_num=0;in_word==0;
第三步:進入字元迴圈 for(i=0;a[i];i++)第四步:進入判斷條件 if(a[i]==' ') (37);
else if(in_word==0)
當i=0時,單詞首字母不為空格字元,不滿足if的判斷條件,此時in_word=0;滿足else if語句的判斷條件,執行語句(38),這時word_num=1;in_word=1;接著執行第二次迴圈,即i=1,如果a[1]不等於空格,則接著執行第三次迴圈,直到第i次迴圈時,第i個字元a[i]=' '(空格)時,則執行語句(37),即in_word=0,接著執行else if語句,此時word_num=2;in_word=1;然後周而復始的判斷執行執行;
簡單的說就是遇見單詞的首字母時,word_num加1建議樓主最好列表觀察,這也是分析**演算法的方法,尤其是迴圈過程可以更清晰的看出word_num和in_word的變化過程。
如果對你有所幫助,請記得採納最佳答案,謝謝!
2樓:
先輸入字串gets(a);
初始化變數word_num=0;in_word==0;
從陣列a的頭開始向後迴圈for(i=0;a[i];i++)如果迴圈到輸入的字元是空格 (因為單詞之間肯定要用空格隔開啊)if(a[i]=='')那麼in_word就讓他得0 意思是到了乙個單詞結束的位置了
如果到了單詞結束的位置else if(in_word==0)(38) word_num++;in_word=1; 就叫word_num++;意思是累加一下單詞數增加1.再把in_word改成1 繼續向下找下乙個單詞結束的位置.
迴圈完了以後 把單詞數輸出到螢幕
以上.不懂就給我發訊息
C語言,數學計算程式,c語言 編寫乙個程式,計算任意輸入的整數的各位數字之和?
給,已經編譯執行確認,並給你做了乙個簡單的介面將這幾個功能都串聯了 include include define pi 3.14159 void isleapyear void getsum void getdegree void isint int main return 1 年代除以400等於0...
C語言程式設計題? 20,C語言程式題
這個有什麼問題嗎?i和j是相等的,行列相等的時候計算的結果就是為1呀。給陣列賦值的過程 巢狀for迴圈,i 條件的for每迴圈1次,j 條件的for迴圈5次 i 1的時候j條件的for迴圈5次,賦值五次 第一次 a i j i j j i 此時i和j的值都是1,結果為1 第二次 a i j i j ...
c語言程式問題,不知道錯那了,乙個c語言程式問題,不知道錯那了
ghfychg ocojijovhhn.pjujicogogv ucohkjj cuhkkv ucjgcbk gfohgibvb focnlvo fxhbobpco cjbpjobl hibhobk gvcj ljl c語言程式不知道哪錯了 不能這樣賦值。你可以 include stdio.h st...