【发布时间】:2015-10-14 23:07:18
【问题描述】:
所以我的问题在于我相信我的 process_digit 函数。我认为没有通过 1 和 0 的每次迭代正确索引的情况,因此当我输入诸如 4 之类的输入时,我得到不正确的输出。我不确定情况是否如此 陈述是倒退的或正在发生的事情,但基本上我认为它们是不正确的。
//input is 1 2 3 4 5 6 7 8 9 0
//output should be _ _ _ _ _ _ _ _
// | _| _| |_| |_ |_ | |_| |_| | |
// | |_ _| | _| |_| | |_| | |_|
//output is _ _ _ _ _ _ _ _
// | _| _| |_| |_ |_ | |_| |_| ||
// | |_ _| | _| |_| | |_| _| |_|
//
#include <stdio.h>
#define MAX_DIGITS 10
void clear_digits_array(void);
void process_digit(int digit, int position);
void print_digits_array(void);
char digits[3][MAX_DIGITS*4];
const int array[MAX_DIGITS][7]={{1,1,1,0,1,1,1},{0,0,1,0,0,1,0},{1,0,1,1,1,0,1},{1,0,1,1,0,1,1},{0,1,1,1,0,1,0},{1,1,0,1,0,1,1},{1,1,0,1,1,1,1},{1,0,1,0,0,1,0},{1,1,1,1,1,1,1},{1,1,1,1,0,1,1},};
void clear_digits_array(void){
int j=0,i=0;
for(i=0;i<3;i++){
for(j=0;j<MAX_DIGITS*4;j++){
digits[i][j]='\0';
}
}
}
void process_digit(int digit, int position){
int i=0;
for(i=0;i<7;i++){
if(array[digit][i]==1){
switch(i){
case 0: digits[0][1+position*4]='_';
break;
case 1: digits[1][0+position*4]='|';
break;
case 2: digits[1][2+position*4]='|';
break;
case 3: digits[1][1+position*4]='_';
break;
case 4: digits[2][0+position*4]='|';
break;
case 5: digits[2][2+position*4]='|';
break;
case 6: digits[2][1+position*4]='_';
break;
}
}
}
}
void print_digits_array(void){
int a=0,b=0;
printf(" ");
for(a=0;a<3;a++){
printf(" ");
for(b=0;b<MAX_DIGITS*4;b++)
printf("%c",digits[a][b]);
printf(" ");
}
printf(" ");
}
int main(void) {
char character_number='\0';
int a=0;
clear_digits_array();
printf("Enter a number:");
while ((character_number=getchar())!='\n') {
int number=MAX_DIGITS;
switch(character_number){
case '0': number=0;
break;
case '1': number=1;
break;
case '2': number=2;
break;
case '3': number=3;
break;
case '4': number=4;
break;
case '5': number=5;
break;
case '6': number=6;
break;
case '7': number=7;
break;
case '8': number=8;
break;
case '9': number=9;
break;
default: printf("%c ignored", character_number);
}
if(a==0){
process_digit(number,a);
a++;
}
}
print_digits_array();
return 0;
}
【问题讨论】:
标签: c arrays multidimensional-array