Ir ao conteúdo
  • Cadastre-se

C++ Matrizes - Linha do menor


Visitante

Posts recomendados

Boa tarde! Eu preciso fazer um programa que lê os dados de uma matriz quadrada de inteiros. Depois, o programa deverá imprimir o número do índice da linha que contém o menor valor da matriz. Porém eu tenho que colocar apenas a linha. Como posso fazer com que o programa entenda que a linha é igual a coluna?

#include <iostream>

using namespace std;

int main()
{
	int n;
	int matriz[n][m];
	int menor = 0, indice = 0;
  
	cin>>n;

  
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
		{
			cin>>matriz[i][j];
		}
	}

  for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
		{
			if (matriz[i][j]<=menor)
			{
				menor = matriz[i][j];
				indice = i;
			}
		}
	}
	cout<<indice<<endl;

  
  
  return 0;
}

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@farnyy

Tenha cuidado com as informações passadas no enunciado. Se a matriz é quadrada, então ela tem os 2 lados iguais.

matriz[n][n]

 

E eu te disse no outro tópico que você tem que ler o n antes de declarar a matriz.

cin>>n; //finge que n vale 3
int matriz[n][m]; // aqui eu já sei que a matriz é n=3, que é matriz[3][3].
//então não tem como declarar uma matriz de [n][n] sem saber quem é n.
  

 

Link para o comentário
Compartilhar em outros sites

@Math.Pi No compilador está dando cero, porém quando mando no programa que a professora pediu para mandar aparece esse erro: O programa pode acessar posições indevidas da memória. A quantidade de dados escritos pelo programa é diferente da quantidade de dados esperados.

#include <iostream>
using namespace std;
int main()
{
	int N;
	int M[N][N];
	int m = 0, ind = 0;
  
	cin>>N;

  
	for (int x = 0; x < N; x++)
	{
		for (int y = 0; y < N; y++)
		{
			cin>>M[N][N];
		}
	}

  for (int x = 0; x < N; x++)
	{
		for (int y = 0; y < N; y++)
		{
			if (M[x][y]<=m)
			{
				m = M[x][y];
				ind = x;
			}
		}
	}
	cout<<ind<<endl;
  return 0;
}

 

Link para o comentário
Compartilhar em outros sites

19 horas atrás, farnyy disse:

Como posso fazer com que o programa entenda que a linha é igual a coluna?

 

Que significa?

 

1 hora atrás, Math.Pi disse:

int N; int M[N][N];

 

Use constantes para as dimensões. Isso em C++ não é padrão, não é portável e deve sumir nas próximas versões. Já expliquei isso no outro tópico e mostrei várias opções.

 

Use nomes significativos para suas variáveis. linha e coluna e linha_com_o_menor_valor são possíveis candidatos. Leia a matriz toda, e mantenha a variável atualizada. Ao final imprima o valor. Como quer o mínimo:  para simplificar C tem a constante INT_MAX, o maior valor possível para um int:
 

	int linha_com_o_menor_valor = INT_MAX;

 

Use o código do outro programa que postou :) 

Link para o comentário
Compartilhar em outros sites

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!