Converter um vetor em uma matriz multidimensional

Publicado por JIMJR (última atualização em 07/06/2011)

[ Hits: 11.751 ]

Download matriz_multi.cpp




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.

  



Esconder código-fonte

#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;
}

Scripts recomendados

Números primos

Parte 6 (Ordenando Strings) - sessão de estudo sobre MATRIZES.

Pares com stdlib

Aplicações em listas dinâmicas

Barra de Loading no console


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts