Ir ao conteúdo
  • Cadastre-se

Codigo de progamacao


CelsoJr001

Posts recomendados

Galera estava fazendo um código que procurasse um determinado valor x em uma matriz e se ele fosse encontrado retornar a posição a qual o valor estivesse e caso não encontrado informar valor não encontrado. Mas estou com um problema no caso de que se o usuário digitar 2 vezes o valor que esta sendo procurado, e minha duvida e de como faço para ele mostrar as duas posições? alguém ae para ajuda? segue o codigo.

 

 

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

int main() {
    int m=20,x,cont1=0,cont2=0,z=0;
    int v[m][m];
    for(int lin=0;lin<m;lin++){
        for(int col=0;col<m;col++){
            scanf("%d",&v[lin][col]);
        }
    }
    scanf("%d",&x);
    for(int lin=0;lin<m;lin++){
        for(int col=0;col<m;col++){
            if(x == v[lin][col]){
                cont1=lin;
                cont2=col;
                z=1; 
            }
            
        }
    }
    if(z == 1){
        printf("%d %d",cont1,cont2);
    }else{
        printf("Nao encontrado");
    }
    
    return (0);
}

 

Link para o comentário
Compartilhar em outros sites

pra mostras mais de uma posição é só colocar o printf dentro do laço de busca:

    for(int lin=0;lin<m;lin++){
        for(int col=0;col<m;col++){
            if(x == v[lin][col]){
       		    printf("numero encontrado em : %d %d",lin,col);
                z++; // usarei o z pra saber quantos numeros foram encontrados;
            }
            
        }
    }
    if(z == 0){ // caso z seja 0, nenhum numero foi encontrado;
        printf("Nao encontrado");
    }
int main()
{
	const int TAM = 20;
	int lin, col, busca, z;
	int v[TAM][TAM];

	// Insere os números na matriz;
	for (lin = 0; lin < TAM; lin++)
	{
		for (col = 0; col < TAM; col++)
		{
			//printf("Informe [%d][%d]:", lin+1, col+1);
			//scanf("%d", &v[lin][col]);
          	scanf_s("%d", &v[lin][col]);
		}
	}

	printf("\nInforme um numero para busca: ");
  	//scanf("%d", &busca);
	scanf_s("%d", &busca);

	// Procura um número na matriz;
	z = 0;
	for (int lin = 0; lin < TAM; lin++)
	{
		for (int col = 0; col < TAM; col++)
		{
			if (busca == v[lin][col])
			{
				printf("Numero encontrado em: [%d] [%d]\n", lin, col);
				z++; // Incrementa pra saber quantos números foram encontrados;
			}
		}
	}
	if (z == 0) 
		printf("Nenhum numero encontrado\n");

	system("PAUSE");
	return (0);
}

 

  • Curtir 1
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...