[Código] Matriz Ordenada Decrescente
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.
Discussão (1)
Carregando comentários...