Ir para conteúdo

POWERED BY:

Arquivado

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

P.Alexandre

[Resolvido] Ponto de cela da Matriz em c++

Recommended Posts

Bom pessoal, sou mais um novato perdido na programação e gostaria muito se alguem pudesse me socorrer hehehe.

Estou tentando fazer um programa que leia uma matriz 3x4, que verifique se a matriz possui ponto de sela e depois mostre o seu valor e sua posição.

Mas estou apanhando em como posso fazer este calculo. Vou postar até onde eu consegui fazer.

Ficarei muito grato se puderem me ajudar..

 

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

main(){

int i, j, matriz[3][4];
int Maior=0,Menor=0,col=0,lin=0; 
 
for(i=0; i<3; i++)
{
for(j=0; j<4; j++)
{
printf(" Informe o valor da Linha e da Coluna da Matriz : "); 
scanf("%d", &matriz[i][j]);
}
}

printf("------------------------------... Matriz Gerada ---------------------------------\n\n");
for(i=0; i<3; i++)

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

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

printf("\n\n");


system("pause");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fica mais rápido receber uma resposta se você postar a definição de ponto de sela em matriz que você está usando:

 

- Teoria dos Jogos: Num jogo de 2 jogadores e soma zero,você tem que calcular o maximin e o minimax.Se forem iguais,esse é o ponto de sela.

 

- Elemento na matriz que é o maior da linha e menor da coluna.

 

Fora as outras definições de ponto de sela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom a definição do exercicio é a seguinte:

 

-Um elemento de uma matriz é chamado de ponto de cela da matriz, se ele for ao mesmo tempo o menor elemento da linha e o maior elemento da coluna a que pertence.Faça um programa, que leia uma matriz de ordem 3x4, que verifique se a matriz possui ponto de sela, mostrando seu valor e localização.

Compartilhar este post


Link para o post
Compartilhar em outros sites

#include <iostream>
using namespace std;

int main (int argc, char *argv[])
{
#define LINHAS 3
#define COLUNAS 4
int matriz[LINHAS][COLUNAS];
int i,j;
cout << "Leitura da matriz." << endl;
for(i=0;i<LINHAS;i++) {
	for(j=0;j<COLUNAS;j++)
		cin >> matriz[i][j];
}

int L_minimo,C_minimo;
int L_maximo,C_maximo;
bool has_saddlepoint = false;
for(i=0;i<LINHAS;i++){
	for(j=0;j<COLUNAS;j++) {
		if (!j) {
			L_minimo=i;
			C_minimo=j;
		} else {
			if (matriz[L_minimo][C_minimo] > matriz[i][j]) {
				L_minimo=i;
				C_minimo=j;
			}
		}
	}

	L_maximo = L_minimo;
	C_maximo = C_minimo;

	for(j=0;j<LINHAS;j++) {
		if (matriz[j][C_maximo] > matriz[L_maximo][C_maximo])
			L_maximo = j;
	}

	if (matriz[L_minimo][C_minimo] == matriz[L_maximo][C_maximo]) {
		has_saddlepoint = true;
		cout << "Sela:" << matriz[L_minimo][C_minimo] << "\tPosição: (" << L_minimo << "," << C_minimo << ")" <<  endl;
	}
}
if (!has_saddlepoint)
	cout << "Nao existe ponto de sela." << endl;
return 0;
}

 

Exemplos de matriz sem ponto de sela:

 

[5 6 9 10]

[7 3 12 15]

[8 2 13 1 ]

 

[ 8 15 20 30]

[ 9 6 5 7 ]

[10 2 40 45]

 

[ 2 7 56 8 ]

[ 3 9 46 15]

[13 17 1 10]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nossa muito OBRIGADO import java.Isis, você AJUDOU MUITOOOOOOO cara..Ficou perfeito..Eu estava bem perdido em como montar a parte do ponto de cela, agora que eu vi as suas correções eu consegui compreender o programa...Muito, mas muito obrigado pela sua dedicação e preucupação para ajudar os novatos como eu..

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.