Converter um vetor em uma matriz multidimensional
Publicado por JIMJR (última atualização em 07/06/2011)
[ Hits: 11.969 ]
Este script pega um vetor e o transforma em uma matriz multidimensional de tamanho de dimensões iguais, em breve vou fazer outro com o tamanho variado.
Foi feito no dev/c++ for Windows, portanto, se quiser compilar no Linux terá que retirar a lib conio.h e substituí-la por ncurses.h ou simplesmente trocar o comando getch() por outro similar.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
#define NUM 2
int main() {
int mat_tri[NUM][NUM][NUM][NUM][NUM][NUM][NUM][NUM][NUM][NUM][NUM][NUM][NUM][NUM][NUM][NUM];
int indx;
int vet_mil[NUM^16];
for(indx = 0; indx < pow(NUM,16); indx++) {
vet_mil[indx] = indx + 1;
printf("( %i , %i , %i , %i , %i , %i , %i , %i , %i , %i , %i , %i , %i , %i , %i , %i ) = %i \n",
(int)floor(indx/pow(NUM,15)),
(int)floor(indx/pow(NUM,14)) % NUM,
(int)floor(indx/pow(NUM,13)) % NUM,
(int)floor(indx/pow(NUM,12)) % NUM,
(int)floor(indx/pow(NUM,11)) % NUM,
(int)floor(indx/pow(NUM,10)) % NUM,
(int)floor(indx/pow(NUM,9)) % NUM,
(int)floor(indx/pow(NUM,8)) % NUM,
(int)floor(indx/pow(NUM,7)) % NUM,
(int)floor(indx/pow(NUM,6)) % NUM,
(int)floor(indx/pow(NUM,5)) % NUM,
(int)floor(indx/pow(NUM,4)) % NUM,
(int)floor(indx/pow(NUM,3)) % NUM,
(int)floor(indx/pow(NUM,2)) % NUM,
(int)floor(indx/pow(NUM,1)) % NUM,
indx % NUM,
vet_mil[indx]);
mat_tri[(int)floor(indx/pow(NUM,15)) ]
[(int)floor(indx/pow(NUM,14)) % NUM]
[(int)floor(indx/pow(NUM,13)) % NUM]
[(int)floor(indx/pow(NUM,12)) % NUM]
[(int)floor(indx/pow(NUM,11)) % NUM]
[(int)floor(indx/pow(NUM,10)) % NUM]
[(int)floor(indx/pow(NUM,9)) % NUM]
[(int)floor(indx/pow(NUM,8)) % NUM]
[(int)floor(indx/pow(NUM,7)) % NUM]
[(int)floor(indx/pow(NUM,6)) % NUM]
[(int)floor(indx/pow(NUM,5)) % NUM]
[(int)floor(indx/pow(NUM,4)) % NUM]
[(int)floor(indx/pow(NUM,3)) % NUM]
[(int)floor(indx/pow(NUM,2)) % NUM]
[(int)floor(indx/pow(NUM,1)) % NUM]
[indx % NUM] = vet_mil[indx];
}
getch();
return 0;
}
Linguagem C estruturada, parte 3 - Sistema Numérico Hexadecimal
clean.h - Biblioteca para limpar um determinado espaço no terminal
Nenhum comentário foi encontrado.
librePods: liberte seus AirPods em 2026
Bluefin - A nova geração de ambientes de trabalho Linux
Como atualizar sua versão estável do Debian
Configurar aviso da temperatura da CPU no Conky
Pós-instalação do elementary OS 8.1
Quer auto-organizar janelas (tiling) no seu Linux? Veja como no Plasma 6 e no Gnome
Copiando caminho atual do terminal direto para o clipboard do teclado
Conky não mostra temperaturas da CPU no notebook (14)
Registro do 'last&qu... errado [RESOLVIDO] (9)
O WiFi não reconhece minha rede depois que o processo de suspensão é r... (2)









