Ajuda com Matriz

15/09/2008

1

Eu fiz esse programa, mas não consegui fazer a saida usando for, então fiz manualmente. Gostaria de saber se alguem pode me explicar como fazer em for.

O que eu quero é...
Eu tenho Matriz 1 3x3, Matriz 2 3x3 e a Matriz 3 3x6.
Eu quero montar a matriz 3 com uma coluna de cada da matriz 1 e 2.
Tipo, a coluna 1 da matriz 1 é a coluna 1 da matriz 3
a coluna 1 da matriz 2 é a coluna 2 da matriz 3
a coluna 2 da matriz 1 é a coluna 3 da matriz 3
e assim sucessivamente.

#include <stdio.h>
include <conio.h>
include <time.h>
include <stdlib.h>

int main () {
    int matriz[3][3],matriz2[3][3],matriz3[3][6];
    int cont,i;
    time_t hora;
    hora = time(NULL);
    srand(hora);  /*função para gerar numeros randomicos*/


    for (i=0;i<3;i++) 
    {
       for (cont=0;cont<3;cont++)
       {
        matriz[i][cont] = ((rand()¬20)+1); /*atribui os numeros randomicos de 1 a 20 na matriz */
        matriz2[i][cont]=((rand()¬20)+1);
       }
    }

printf("   \x1A PRIMEIRA MATRIZ \n\n");
    for (i=0;i<3;i++)                    /*mostrar as matriz*/
     {
       for (cont=0;cont<3;cont++)
       {
          printf(" ¬i \t",matriz[i][cont]);
       }
       printf("\n");
    } 
       
    printf("\n\n");
printf("  \x1A SEGUNDA MATRIZ \n\n");    
    for (i=0;i<3;i++)                        /*mostrar as matriz2*/
     {
       for (cont=0;cont<3;cont++)
       {
          printf(" ¬i \t",matriz2[i][cont]);
       }
       printf("\n");
    }    
  printf("\n\n");
  
  
/*calculca a matriz3*/

matriz3[0][0]=matriz[0][0];
matriz3[1][0]=matriz[1][0];
matriz3[2][0]=matriz[2][0];

matriz3[0][1]=matriz2[0][0];
matriz3[1][1]=matriz2[1][0];
matriz3[2][1]=matriz2[2][0];

matriz3[0][2]=matriz[0][1];
matriz3[1][2]=matriz[1][1];
matriz3[2][2]=matriz[2][1];

matriz3[0][3]=matriz2[0][1];
matriz3[1][3]=matriz2[1][1];
matriz3[2][3]=matriz2[2][1];

matriz3[0][4]=matriz[0][2];
matriz3[1][4]=matriz[1][2];
matriz3[2][4]=matriz[2][2];

matriz3[0][5]=matriz2[0][2];
matriz3[1][5]=matriz2[1][2];
matriz3[2][5]=matriz2[2][2];



printf("\n\n");
printf("  \x1A TERCEIRA MATRIZ \n\n");

for(i=0;i<3;i++)                        /*mostrar as matriz2*/
    {
       for(cont=0;cont<6;cont++)
       {
        printf(" ¬i \t",matriz3[i][cont]);
       }
       printf("\n");
    } 

getch();
}



Responder

Posts

15/09/2008

Rodc

Creio que algo assim seria melhor... não testei para saber se funciona....
/*calculca a matriz3*/ 
memcpy(matriz3[0], matriz[0], ARRAYSIZE(matriz3[0]));
memcpy(matriz3[1], matriz2[0], ARRAYSIZE(matriz3[0]));
memcpy(matriz3[2], matriz[1], ARRAYSIZE(matriz3[0]));
memcpy(matriz3[3], matriz2[1], ARRAYSIZE(matriz3[0]));
memcpy(matriz3[4], matriz[2], ARRAYSIZE(matriz3[0]));
memcpy(matriz3[5], matriz2[2], ARRAYSIZE(matriz3[0]));



Responder