現在我在讀「C的Primer Plus」,由斯蒂芬·普拉塔並有在第6章,其在書中沒有解決的練習4,所以我不能檢查,如果我做到了正常。我的代碼的工作原理應該如此,但我想知道也許有一些更好或更清潔的解決方案。你們能幫助我嗎?我的代碼低於練習的描述。Ç的Primer Plus第6章練習4檢查
這裏的描述: 有一個程序請求用戶輸入一個大寫字母。使用嵌套循環產生的金字塔模式是這樣的:
A
ABA
ABCBA
ABCDCBA
ABCDEDCBA
的模式應該擴展到輸入的字符。例如,前面的模式將由輸入值E產生。提示:使用外部循環來處理行。在一行中使用三個內部循環,一個用於處理空格,一個用於按升序打印字母,另一個用於按降序打印字母。
#include <stdio.h>
int main(void) {
char ch;
char row;
char spaces;
char let;
char back;
printf("Please, insert an uppercase letter: ");
scanf("%c", &ch);
for(row = 'A'; row <= ch; row++) {
for(spaces = ch; spaces > row; spaces--)
printf("%c", ' ');
for(let = 'A'; let <= row; let++)
printf("%c", let);
for(back = let; back > 'A' + 1; back--)
printf("%c", back - 2);
printf("\n");
}
return 0;
}
這是一個很好的解決方案,恭喜。 – 2015-01-27 00:48:08
如果代碼正在工作(併產生預期的輸出),它就屬於https://codereview.stackexchange.com。除了「更好或更清潔的解決方案」之外,一定要包含更多關於您正在尋找的建議的信息。 – 2015-01-27 00:49:11
@remyabel感謝您的鏈接和建議。 – 2015-01-27 00:53:50