Pular para o conteúdo

Converter um vetor em uma matriz multidimensional

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.
JIMJR jimjrivan
Hits: 12.097 Categoria: C/C++ Subcategoria: Introdução
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

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.
Download matriz_multi.cpp Enviar nova versão

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

Parte 2 - Sessão de estudo sobre MATRIZES

Ordenação

Ávores binárias em C

Antecessor e sucessor

Conversor de ENEM para UFMG

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.