Converter um vetor em uma matriz multidimensional

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

[ Hits: 11.612 ]

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

NOÇÕES DE ARITMÉTICA DE PONTEIROS

Pilha Sequencial

Agenda de Contatos v1.0

Mis Delta !!!

Exemplo de gabaritos de função


  

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