Converter um vetor em uma matriz multidimensional

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

[ Hits: 11.692 ]

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

DATA POR EXTENSO

Mudar nome do processo

Função return

Calcular aumento de salário

Crivo de Eratóstenes


  

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