Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

CSI Programmer

[Código] Matriz Ordenada Decrescente

Recommended Posts

E ai pessoal beleza trago aqui para vocês a solução de um algoritmo que faz nós estudantes iniciantes em ciência da computação quebrar a cabeça para tentar resolvê-lo. Segue abaixo o enunciado e logo após a resolução abraços.

 

Faça um algoritmo que leia a ordem de uma matriz quadrada caso a ordem seja um número impar o algoritmo deverá gerar uma matriz de acordo com o exemplo abaixo.

 

Ex 1: Matriz de dimensão 5.

 

3 3 3 3 3

3 2 2 2 3

3 2 1 2 3

3 2 2 2 3

3 3 3 3 3

 

Ex 2: Matriz de dimensão 7.

 

4 4 4 4 4 4 4

4 3 3 3 3 3 4

4 3 2 2 2 3 4

4 3 2 1 2 3 4

4 3 2 2 2 3 4

4 3 3 3 3 3 4

4 4 4 4 4 4 4

 

Caso a ordem seja um número par informar uma mensagem na tela dizendo "A matriz não pode ser gerada".

 

Obs: A dimensão só pode ser informada pelo usuário e em todas as matrizes criadas o nº1 deverá sempre existir conforme os exemplos anteriormente mostrados.

 

Resolução do Algoritmo

 

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

    int main ()
    {
        int n,l,c,x; // "n" é a dimensão a ser informada, "l" linha, "c" coluna.
        printf("Informe a dimensao da Matriz: ");
        scanf("%d", &n);
        int vetor[n][n];
        int aux = ((n-1)/2)-1;
        if ((n%2)==1)// Calculo para saber se é impar.
        {
        l=0;
        while (l<n)
        {
          c=0;        
           while (c<n)
              {
                   vetor[l][c]=n-aux;
                   c++;
              } 
              l++;
        }
           x=0;
           while ( x < n-x)
           {
                 l=x;
                 while ( l < n-x)
                 {
                       c=x;
                       while ( c < n-x)
                       {
                             vetor[l][c]= vetor[l][c]-1;
                             c++;
                       }
                       l++;
                 }
                 x++;
           }
           l=0;



           while (l<n)
           {
              c=0;        
                  while (c<n)
                  {
                      printf("%d ", vetor[l][c]);
                      c++;
                  } 
              l++;
              printf("\n");
           }
           }
        else
            if((n%2)==0)// Calculo para saber se é par.
        {
        printf("A matriz nao pode ser gerada \n");
        }
           system("pause");
              return 0;
        }

Atenção: Eu só usei "while" em vez de "for" por que foi uma exigência explícita do professor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pô mano vlw ;D

Uma vz precisei fazer um desses na facu.. mais já faz tanto tempo kkk

 

:thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.