題目 Problem#
題目連結:https://etutor2.itsa.org.tw/mod/topics/view.php?id=15902
敘述 Description#
現有一可顯示四位數字的 LED 燈一組,可根據輸入的四位數字顯示數字。比如說,
由鍵盤輸入 1234 ,則可在螢幕上顯示

若輸入 0789 ,則顯示

輸入 Input#
輸入格式為四個整數。
輸出 Output#
輸出值為輸入值的矩陣數字。
範例輸入 Sample Input#
0789
範例輸出 Sample Output#
***** ***** ***** *****
* * * * * * *
* * * ***** *****
* * * * * *
***** * ***** *
提示 Hint#
題解 Solution#
如果題目直接輸入整數,會把前導 0 給省略,因此使用字串輸入。
輸出會是由上到下執行,所以要先印出每一個數字的第一行,再印出每一個數字的第二行,以此類推。
可以用字元陣列建立要顯示的 LED 燈,最後直接對應每個數字輸出該字串即可。
程式碼 Accepted Code#
#include <stdio.h>
char display[5][10][6] = {
{"*****", " *", "*****", "*****", "* *", "*****", "*****", "*****", "*****", "*****"},
{"* *", " *", " *", " *", "* *", "* ", "* ", " *", "* *", "* *"},
{"* *", " *", "*****", "*****", "*****", "*****", "*****", " *", "*****", "*****"},
{"* *", " *", "* ", " *", " *", " *", "* *", " *", "* *", " *"},
{"*****", " *", "*****", "*****", " *", "*****", "*****", " *", "*****", " *"},
};
int main()
{
char s[10];
scanf("%s", s);
for (int j = 0; j < 5; j++){
for (int i = 0; i < 4; i++){
int d = s[i] - '0';
if (i)
printf(" ");
printf("%s", display[j][d]);
}
printf("\n");
}
return 0;
}
後記 Afterword#
目前預計會把所有 ITSA 基礎題目都會用 C 語言通通寫過一次,瀏覽次數增加最多的好像都是這樣基礎文章,可能最近碰到開學,學寫程式的人有變多。