日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

《c程序设计语言》练习1-12

發布時間:2025/3/11 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《c程序设计语言》练习1-12 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

c程序設計語言練習1-12:編寫一個程序,以每行一個單詞的形式打印其輸入。

此處單詞是指除空格,TAB鍵,換行字符和文件結束符號(EOF)之外的其他字符。
我的代碼如下:
而《the c answer book》中的代碼如下:

?

1. #include 《stdio.h> 2. 3. #define IN 1 4. #define OUT 0 5. 6. /* print input one word perl line*/ 7. main() 8. { 9. int c,state; 10. 11. state = OUT; 12. while((c = getchar()) !=EOF){ 13. if(c == ' '||c == '\n' || c == '\t'){ 14. if(state == IN){ 15. putchar('\n'); 16. state = OUT; 17. } 18. } else if (state == OUT){ 19. state = IN; 20. putchar(c); 21. }else 22. putchar(c); 23. } 24. } ?


這個程序能夠解決這個習題,但是整個程序看起來卻有點冗余(畢竟這本書是1988年出版的)。因為最后的兩種情況完全可以合并。
所以另一個網站 給出的答案如下:

1. #include <stdio.h> 2. int main(void) 3. { 4. int c; 5. int inspace; 6. 7. inspace = 0; 8. while((c = getchar()) != EOF) 9. { 10. if(c == ' ' || c == '\t' || c == '\n') 11. { 12. if(inspace == 0) 13. { 14. inspace = 1; 15. putchar('\n'); 16. } 17. /* else, don't print anything */ 18. } 19. else 20. { 21. inspace = 0; 22. putchar(c); 23. } 24. } 25. return 0; 26. } ?

?

這樣看起來好一些,但是還顯得不夠簡練,不過c程序設計語言中給出的程序(課本1.5.4單詞計數的程序,跟這個程序以及習題1-9其實都是同一類問題)簡練。這個程序雖然表面上看起來很簡單,但是以我的笨腦子,最先想到的是找個字符數組來存儲每個單詞并將之輸出。后來仔細想了想,直接用putchar就可以了。這個算法根據前一個字符和當前字符的值(每個值都可能是空白字符或者單詞字符)分成四種情況。而根據其值的特殊性有些情況下是不需要做任何操作,所以可以合并成兩種情況就可以了,這樣看起來邏輯也更清晰一些。
我寫的代碼如下:

1. #include <stdio.h> 2. 3. #define TRUE 1 4. #define FALSE 0 5. 6. int main() 7. { 8. int c; /* a character variable */ 9. int b; /* a bool variable whose value is TRUE or FALSE 10. which indicates current character is in a word or out of a word*/ 11. 12. b = FALSE; 13. while( (c = getchar()) != EOF) 14. if( c != ' ' && c != '\t' && c != '\n') 15. { 16. putchar(c); 17. b = TRUE; 18. } 19. else if(b == TRUE) 20. { 21. printf("\n"); 22. b = FALSE; 23. } 24. return 0; 25. }

總結

以上是生活随笔為你收集整理的《c程序设计语言》练习1-12的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。