Converter um vetor em uma matriz multidimensional

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

[ Hits: 11.662 ]

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

Exemplo Básico de Struct em C

Usando uma header...

Mini - agenda

ponteirostrab.c - Trabalhando com ponteiros

Verificador de número primo


  

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