Boas...
Aqui fica o código feito pelo nosso amigo HappyHiipyHippo. Eu acho que percebi o código por alto e posso tentar ajudar em alguma dúvida que possas ter e que eu saiba explicar!
E apesar de isto não ser prática correcta, a de colocar aqui a solução, acho que não irias lá chegar tão cedo, até porque eu também jamais chegaria a esta solução!
Tenta mesmo perceber o código, porque se isto fôr para algum trabalho, que depois tenhas que defender, vais acabar por deitar tudo a perder porque não vais saber explicar como o código funciona! Nem tão pouco vais ficar a saber como se faz!
#include <stdio.h>
char DIGITS[10][3][3] =
{
{
{' ', '_', ' '},
{ '|', ' ', '|'},
{ '|', '_', '|'}
},
{
{' ', ' ', ' '},
{ ' ', ' ', '|'},
{ ' ', ' ', '|'}
},
{
{' ', '_', ' '},
{ ' ', '_', '|'},
{ '|', '_', ' '}
},
{
{' ', '_', ' '},
{ ' ', '_', '|'},
{ ' ', '_', '|'}
},
{
{' ', ' ', ' '},
{ '|', '_', '|'},
{ ' ', ' ', '|'}
},
{
{' ', '_', ' '},
{'|', '_', ' '},
{ ' ', '_', '|'}
},
{
{' ', ' ', ' '},
{ '|', '_', ' '},
{ '|', '_', '|'}
},
{
{' ', '_', ' '},
{ ' ', ' ', '|'},
{ ' ', ' ', '|'}
},
{
{' ', '_', ' '},
{ '|', '_', '|'},
{ '|', '_', '|'}
},
{
{' ', '_', ' '},
{ '|', '_', '|'},
{ ' ', ' ', '|'}
}
};
void printNumberRec(int number, int line){
if (line >= 3)
return;
int suf = number / 10;
int digit = number % 10;
if (suf)
printNumberRec(suf, line);
printf("%c%c%c",
DIGITS[digit][line][0],
DIGITS[digit][line][1],
DIGITS[digit][line][2]); // poderia ser uma string ... mas a matrix já está criada
}
void printNumber(int number) {
for (int line = 0; line < 3; ++line) {
printNumberRec (number, line);
printf("\n");
}
}
int main(){
int number;
printf("digite um numero:\n");
printf(">>>");
scanf("%d", &number);
printNumber(number);
return 0;
}
↧