Ir ao conteúdo
  • Cadastre-se

Matriz [3][3] troca de posições


Anderson1986

Posts recomendados

Estou tentando resolver o seguinte problema;

Em uma matriz de 3 x 3 informada com valores inteiros, procure o menor valor e troque com a primeira posição (0,0) e o maior número na posição (3,3). Imprima a matriz.

Não estou conseguindo fazer a troca de posições. o codigo é o seguinte

#include<iostream.h>

#include<conio.h>

int main()

{

int M[3][3], Aux[3][3], T[3][3], l, c, m=3, p, pos, pos2, q=3;

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

{

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

{

cout<<"Digite um numero["<< l <<"]["<< c <<"]:";

cin>>M[l][c];

}

}

cout<<" \n Matriz sem alteracao: \n";

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

{

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

{

cout<<endl<<M[l][c];

}

}

cout<<"\n";

int maior = M[0][0];

int menor = M[0][0];

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

{

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

if(M[l][c] > maior)

{

maior = M[l][c];

}

}

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

{

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

if(M[l][c] < menor)

{

menor = M[l][c];

Aux[l][c]=M[l][c];

}

}

cout<<"\n O maior numero: "<<maior<<"\n";

cout<<"\n O menor numero: "<<menor<<"\n";

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

{

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

if(M[l][c] < menor)

{

menor = M[l][c];

}

}

cout<<" \n Matriz com alteracao: \n";

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

{

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

if (maior==M[p][q])

pos=T[p][q];

}

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

{

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

if (menor==M[p][q])

pos2=T[p][q];

}

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

{

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

{

cout<<endl<<M[l][c];

}

}

getch();

}

Link para o comentário
Compartilhar em outros sites

Ola Fiz dessa forma espero que te ajude

A Lógica que usei foi localizar primeiro o maior e o menor numero e depois fazer a inversão


/*
Função : Em uma matriz de 3 x 3 informada com valores inteiros, procure o menor valor e troque
com a primeira posição (0,0) e o maior número na posição (3,3). Imprima a matriz.
Autor : Adriano - F5cursos.com
*/
#include <stdio.h>
#include <conio.h>

main(){

//Definição de variaveis
int i, j, matriz[3][3], Aux=0, AuxM=0, Maior, Menor;

//Entrada de dados
for(i=0; i<3; i++)
{
for(j=0; j<3; j++)
{
printf("\n\n Informe o valor da %d%c Linha e da %d%c Coluna da Matriz : ", i+1, 167, j+1, 167);
scanf("%d", &matriz[i][j]);
}
}
printf("\n\n\n");

Maior = matriz[0][0];
Menor = matriz[0][0];
//Processamento e saida em tela
for(i=0; i<3; i++)
{
for(j=0; j<3; j++)
{
if (matriz[i][j] > Maior )
{
Maior = matriz[i][j];
}
if (matriz[i][j] < Menor )
{
Menor = matriz[i][j];
}
}
}
for(i=0; i<3; i++)
{
for(j=0; j<3; j++)
{
if (matriz[i][j] == Menor )
{
AuxM = matriz[0][0];
matriz[0][0]=matriz[i][j];
matriz[i][j]=AuxM;
}
if(matriz[i][j] == Maior )
{
Aux = matriz[2][2];
matriz[2][2]=matriz[i][j];
matriz[i][j]=Aux;
}
}
}

printf("-------------------------------- Matriz Gerada ---------------------------------\n\n");
for(i=0; i<3; i++)
{
for(j=0; j<3; j++)
{
printf("%6d", matriz[i][j]);
}
printf("\n\n");
}
printf("--------------------------------------------------------------------------------\n\n");
printf(" O Maior valor : %d \n O Menor valor : %d ", Maior , Menor);
printf("\n\n");


system("pause");
}

Link para o comentário
Compartilhar em outros sites

Arquivado

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

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...