在KN Kings的“C programming:A modern approach”第10章练习7中,任务是将数字转换器从普通数字转换成ASCII艺术中的7段数字,像这样:7段显示printf和段多维数组
_ _ _ _ _ _ _ _
| _| _| |_| |_ |_ | |_| |_| | |
| |_ _| | _| |_| | |_| | |_|
我得到了每个数字的序列,其中在它开启和关闭
样本:
int digit_sequence[10][7] = {
// A,B,C,D,E,F,G
/* 0 */ {1,1,1,1,1,1,0}
}
其中1 = ON,0 = OFF
但我很难让process_digit(int digit, int position)
函数正常工作。
我有我的头从sequence[10][7]
翻译为digits[4][MAX_DIGITS*4]
困难时期可能是一种灵魂,请帮帮我吗?
我一直在阅读高尔夫代码七段挑战,但即使我理解了这一理论,仍然很难说服我的大脑做我想要的多个阵列。
忽略ASCII技术中,读取问题:
收件,提示了许多用户,然后显示使用的字符来模拟一个七段显示的效果的数量的程序。
...
数字以外的字符应该被忽略。编写程序,以便最大位数由名为MAX_DIGITS的宏控制,该宏的值为10.如果数字包含的位数超过此数字,则额外的数字将被忽略。 提示:使用两个外部阵列。一个是
segments
数组,它存储表示数字和段之间对应关系的数据。另一个数组digits
将是一个包含4行(因为每个分段数字都是4个字符高)的字符数组和MAX_DIGITS * 4
列(数字是三个字符宽,但数字之间需要空格以提高可读性)。写你的程序为四个功能:main
,[...]void clear_digits_array(void); void process_figit(int digit, int position); void print_digits_array(void);
clear_digits_array
将空白字符存储到数字数组中的所有元素。process_digit
将存储digit
的七段表示到digits
阵列中的指定位置(位置范围从0
到MAX_DIGITS - 1
)。print_digits_array
将显示位数组的行,每行位于一行[...]上。
你应该更好地解释一下,'digit_sequence []'和'digits []'的目的是什么?你提到的'process_digit()'函数的意图是什么? – unwind
你正在使经典初学者误以为我们知道你在做什么。我们从来没有听说过'process_digit'函数,不知道它应该如何工作。 – Chriszuma
第10章出现在书的“第11章:指针”和“第12章:指针和数组”之前。 –