Ir ao conteúdo
  • Cadastre-se

Matrizes


Brunassilvas

Posts recomendados

Olá pessoal!

Estou com um problema nesse exercício de matrizes..será que alguém pode me ajudar?

Eu tentei de diversas formas, mas não consigo localizar onde deu errado. Minha matriz recebe os elementos, mas no final não consegue realizar a contagem dos repetidos (como pedido do exercício.

 

Obrigada desde já! :)

 

EDIT: No código fiz uma matriz menor que do enunciado do exercício, o que não deve influenciar. É mais pra facilitar a checagem!

 

//Escrever um algoritmo que lê uma matriz A 15x5 e a escreva.
//Verifique, a seguir, quais os elementos de A que estão repetidos e quantas vezes cada um está repetido.
//Escrever cada elemento repetido com uma mensagem dizendo que o elemento aparece X vezes em A.

#include <stdio.h>
#define V mat;

main()
{ 

	int naocont, i, j;
	int cont=0;
	int mat[3][3];

for (i=0; i<3; i++)
	{
	for (j=0; j<3; j++)
	{ 
		printf("informe valor de mat[%d][%d]: ", i, j);
		scanf("%d", &mat[i][j]);
	}
	}

for (i=0; i<3; i++)
{
	for (j=0; j<3; j++)
		{
			naocont=0;

		for (i=0; i<3; i++)
			{
		for (j=0; j<3; j++)
		
				if (mat[i][j] == mat[j][i])
				{
					naocont=1;
					if (naocont == 0)
						{
							cont = 1;
							for(i=0;i<4;i++)
							for (j=i+1; j<3; j++)
							if (mat[i][j] == mat[j][i])
								{
									cont++;}
						}
				}
			}
		}
}
for (i=0; i<3; i++)
for (j=0; j<3; j++)
	   printf("%d ocorre %d vez(es).\n", mat[i][j], cont);
}

 

Link para o comentário
Compartilhar em outros sites

Olá Brunassilvas,

 

Antes de escrever código, você deve ter uma ideia clara do algoritmo que você vai implementar. Qual algoritmo você está usando? Qual foi a estratégia geral que você tinha em mente com esse código?

 

Uma forma de resolver esse problema seria criar dois vetores cujos tamanhos são iguais ao número de elementos na matriz, e em um vetor você guarda os elementos encontrados na matriz, e no outro vetor você coloca o número de vezes que aquele elemento foi encontrado na matriz. Assim, quando você for percorrer a matriz, basta você verificar se o elemento atual já se encontra no primeiro vetor, e caso positivo você apenas incrementa o valor na posição correspondente do outro vetor. Caso o elemento atual da matriz não está no primeiro vetor, você coloca esse elemento na última posição não ocupada do vetor e coloca o número 1 na posição correspondente do segundo vetor. Ao final do processo você terá dois vetores, um deles terá os valores encontrados na matriz, e o outro dirá quantas vezes cada um desses valores foi encontrado na matriz.

 

Imagino que há outros algoritmos para resolver esse problema, mas o descrito acima é apenas uma sugestão.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber 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...