Ir ao conteúdo

Posts recomendados

Postado

Èeh pessoal, estou com um serio problema em aprender matrizes. O prof. passou uma lista que com muito sacrificio eu estava conseguindo fazer, mas quando cheguei nessas 3 questoes, a coisa ficou tensa :/

Creio que a resolucao de uma, ajuda para a resolucão das outras duas.

Enunciado1: Criar um programa que entre com valores inteiros para uma matriz 3 x 3 e imprimaa matriz final, conforme mostrado a seguir:

1 2 3

4 5 6

7 8 9

a matriz gira 90º

7 4 1

8 5 2

9 6 3

Enunciado2: Criar um programa que entre com valores inteiros para uma matriz 3 x 3 e imprimaa matriz final, conforme mostrado a seguir:

1 2 3

4 5 6

7 8 9

a matriz gira 180º

9 8 7

6 5 4

3 2 1

Enunciado3: Criar um programa que entre com valores inteiros para uma matriz 3 x 3 e imprimaa matriz final, conforme mostrado a seguir:

1 2 3

4 5 6

7 8 9

a matriz gira 270º

3 6 9

2 5 8

1 4 7

Aqui está o inicio da resolucao, alias, o que eu consegui fazer.

#include<stdio.h>

#include<stdlib.h>

int main()

{

int matriz[3][3], i, j;

//entrando com os valores da matriz inicial

for(i=0;i<3;i++) {

for(j=0;j<3;j++) {

printf("Digite o valor da matriz[%d][%d]: ",i+1, j+1);

scanf("%d", &matriz[j]);

}

}

//mostrando a matriz inicial

for(i=0;i<3;i++) {

printf("\n");

for(j=0;j<3;j++) {

printf(" %d ", matriz[j]);

}

}

...

return (0);

}

Obrigado, e abração pra todos.

Postado

Cara, acredito que o que você tenha passado ai seja para apresentar na tela e não muda-las de posição na memória. Então o seguinte tente fazer um "mapa" aonde se localiza cada numeral que você digitou, por exemplo

Nº 1 - linha0,coluna0

Nº 2 - linha0,coluna1

.

.

.

E assim com os demais, depois de saber a localização deles é só fazer um outro "mapa" para saber aonde eles serão mostrados na tela, por exemplo na rotação de 90º ...

Nº 1 - Que está na linha0,coluna0 deverá ser apresentado na : linha0,coluna2

Nº 2 - Que está na linha0,coluna1 deverá ser apresentado na : linha1,coluna2

.

.

.

Com isso você vai percebendo que aonde os números serão mostrandos, assim você faz como uma apresentação normal de matriz com 2 for's só que as 2 coisas que você terá que variar são : as regras do for, em algumas vai ser encremento e nas outras decremento e quem não mudará de valor na apresentação ...

Ex : Na rotacação de 90º a mudará só depois dos 3 valores terem aparecido então ela ficará 1º no for. Tente fazer ai qualquer coisa posto o código :D

Postado

OK, acho que comecei a entender ;D

Vou tentar fazer agora, se eu realmente nao conseguir eu peço para você posta o código.

Obriigado, guilhermehgl.

---------------------------------------------------------------------------------------------------------------------------------------

Ficou meio que uma gambiarra, mas deu certo ;P

Essa é do enunciado 1:

#include<stdio.h>

#include<stdlib.h>

int main()

{

int matriz[3][3], i, j, rot[3][3];

//entrando com os valores da matriz inicial

for(i=0;i<3;i++) {

for(j=0;j<3;j++) {

printf("Digite o valor da matriz[%d][%d]: ",i+1, j+1);

scanf("%d", &matriz[j]);

}

}

//mostrando a matriz inicial

for(i=0;i<3;i++) {

printf("\n");

for(j=0;j<3;j++) {

printf(" %d ", matriz[j]);

}

}

//rotacionando a matriz

for(i=0;i<3;i++) {

if(i==0){

for(j=0;j<3;j++){

rot[j][2]=matriz[j];

}

}

if(i==1){

for(j=0;j<3;j++){

rot[j][1]=matriz[j];

}

}

if(i==2){

for(j=0;j<3;j++){

rot[j][0]=matriz[j];

}

}

}

//mostrando a matriz rotacionada

printf("\n\nA MATRIZ GIRA 90º\n");

for(i=0;i<3;i++) {

printf("\n");

for(j=0;j<3;j++) {

printf(" %d ", rot[j]);

}

}

return (0);

}

Essa é do enunciado 2:

#include<stdio.h>

#include<stdlib.h>

int main()

{

int matriz[3][3], i, j;

//entrando com os valores da matriz inicial

for(i=0;i<3;i++) {

for(j=0;j<3;j++) {

printf("Digite o valor da matriz[%d][%d]: ",i+1, j+1);

scanf("%d", &matriz[j]);

}

}

//mostrando a matriz inicial

for(i=0;i<3;i++) {

printf("\n");

for(j=0;j<3;j++) {

printf(" %d ", matriz[j]);

}

}

//rotacionando e mostrando a matriz

printf("\n\nA MATRIZ GIRA 180º\n");

for(i=0;i<3;i++) {

printf("\n");

if(i==0){

for(j=2;j>=0;j--){

printf(" %d ", matriz[2][j]);

}

}

if(i==1){

for(j=2;j>=0;j--){

printf(" %d ", matriz[1][j]);

}

}

if(i==2){

for(j=2;j>=0;j--){

printf(" %d ", matriz[0][j]);

}

}

}

return (0);

}

Postado

você conseguiu elaborar o algoritmo de rotação em 270°.

Caso positivo, teria como postar como fez com os demais.

Apesar de ter conseguido entender a lógica, nao consegui elaborar o terceiro algoritmo.

Grande abraço

  • 8 anos depois...
Postado

Criar um programa que entre com valores inteiros para uma matriz M3x3 e imprima a matriz final, conforme mostrado a seguir:

 

| 1 2 3 |                                    | 7 4 1 |

| 4 5 6 |  a matriz gira 90º      | 8 5 2 |

| 7 8 9 |                                    | 9 6 3 |

 

 

#include<stdio.h>

 

int main (void)

 

{

    int matriz [3][3],i,j;

 

    for(i=0;i<3;i++)

    {

        for(j=0;j<3;j++)

        {

            scanf("%d",&matriz[i][j]);

        }

    }

    printf("\n");

    for (i=2;i>=0;i--)

    {

        printf("%d ",matriz[i][0]);

    }

    printf("\n");

    for (i=2;i>=0;i--)

    {

        printf("%d ",matriz[i][1]);

    }

    printf("\n");

    for (i=2;i>=0;i--)

    {

        printf("%d ",matriz[i][2]);

    }

    return 0;

}

 

Criar um programa que entre com valores inteiros para uma matriz M3x3 e imprima a matriz final, conforme mostrado a seguir:

 

| 1 2 3 |                                    | 9 8 7 |

| 4 5 6 |  a matriz gira 180º     | 6 5 4 |

| 7 8 9 |                                    | 3 2 1 |

 

#include<stdio.h>

 

int main(void)

{

    int matriz[3][3],i,j;

 

    for(i=0;i<3;i++)

    {

        for(j=0;j<3;j++)

        {

            scanf("%d",&matriz[i][j]);

        }

    }

    printf("\n");

    for(i=2;i>=0;i--)

    {

        for(j=2;j>=0;j--)

        {

            printf("%d ",matriz[i][j]);

        }

        printf("\n");

    }

    return 0;

}



 

Criar um programa que entre com valores inteiros para uma matriz M3x3 e imprima a matriz final, conforme mostrado a seguir: 

 

| 1 2 3 |                                    | 3 6 9 |

| 4 5 6 |  a matriz gira 270º     | 2 5 8 |

| 7 8 9 |                                    | 1 4 7 |

 

#include<stdio.h>

 

int main (void)

 

{

    int matriz[3][3] ,i ,j;

 

    for(i=0;i<3;i++)

 

    {

        for(j=0;j<3;j++)

 

        {

            scanf("%d",&matriz[i][j]);

        }

    }

 

        printf("\n");

        for(i=0;i<3;i++)

 

        {

            printf("%d ",matriz[i][2]);

        }

 

        printf("\n");

        for(i=0;i<3;i++)

 

        {

            printf("%d ",matriz[i][1]); 

        }

 

        printf("\n");

        for(i=0;i<3;i++)

        

        {

            printf("%d ",matriz[i][0]);

        }

    return 0; 

}

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!