- UID
- 789
- 帖子
- 13
- 精華
- 7
- 積分
- 538
- 金幣
- 513
- 威望
- 17
- 推廣
- 0
- 閱讀權限
- 10
- 在線時間
- 14 小時
- 註冊時間
- 2007-10-21
|
1樓
發表於 2007-10-28 20:48
| 只看該作者
[討論] [C語言]清大資工程式設計作業六解答
題目讓使用者輸入一個字串,譬如 "abc",然後程式要輸出如下排列的圖形:
abccba
b b
c c
c c
b b
abccba
[提示] 用字元陣列把輸入的字串存起來,例如:
char str[100];
scanf("%s", str);
再用雙重迴圈把陣列中需要被顯示的字元印出來。
關於雙重迴圈,除了講義之外,還可以參考首頁裡最新消息放的 nested_loops.ppt 檔案。
程式必須知道使用者輸入的字串長度是多少,所以要用 strlen(),記得要在程式最前面把 string.h 檔案 include。 解答
基本上解答有很多種寫法,我寫的這是最簡單的方法
事實上還有更簡潔的寫法,歡迎大家貼一下自己的寫法- #include <stdio.h>
- #include <string.h>
- int main(void)
- {
- int a, b, c, k;
- char str[40];
-
- printf("Please input a string : ");
- scanf("%s", str);
-
- k = strlen(str);
-
- /*我是快樂的分隔線一號*/
-
- printf("%s", str);
- for(a = 0; a < k; a++)
- {
- printf("%c", str[k-a-1]);
- }
- printf("\n");
-
- /*我是快樂的分隔線二號*/
-
- for(b = 1; b < k; b++)
- {
- printf("%c", str[b]);
-
- for(c = 0; c < (k*2 - 2); c++)
- {
- printf(" ");
- }
-
- printf("%c\n", str[b]);
- }
-
- /*我是快樂的分隔線三號*/
-
- for(b = 1; b < k; b++)
- {
- printf("%c", str[k-b]);
-
- for(c = 0; c < (k*2 - 2); c++)
- {
- printf(" ");
- }
-
- printf("%c\n", str[k-b]);
- }
-
- /*我是快樂的分隔線四號*/
-
- printf("%s", str);
- for(a = 0; a < k; a++)
- {
- printf("%c", str[k-a-1]);
- }
-
- return 0;
- }
複製代碼 [ 本帖最後由 Eason 於 2007-10-29 15:34 編輯 ]
|
|