Ir ao conteúdo
  • Cadastre-se

C achar um sequencia numa matriz em c


juxt

Posts recomendados

Alguém pode me dizer qual o erro do meu programa? Ele deve encontrar uma sequencia dada pelo usuário e mostrar as posições de cada número na matriz.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 25
const int N = 5;
int main()
{
	int matriz[N][N], i, j, z, contador = 0, k, s[MAX];
	srand(time(NULL));
	printf("Insira o valor de K: ");
	scanf("%d", &k);
	for (z = 0; z < k; z++)
	{
		printf("insira a sequencia de %d numeros a ser procurada na matriz: ", k);
		scanf("%d", &s[z]);
	}
	for (i = 0; i < N; i++)
	{
		for (j = 0; j < N; j++)
		{
			matriz[i][j] = 0 + rand() % ((9 + 1) - 1);
		}
	}
	for (i = 0; i < N; i++)
	{
		for (j = 0; j < N; j++)
		{
			for (z = 0; z < k; z++)
			{
				if (matriz[i][j] == s[z])
				{
					contador = contador + 1;
				}
			}
		}
	}
	printf("Matriz\n");
	for (i = 0; i < N; i++)
	{
		for (j = 0; j < N; j++)
		{
			printf("%5d", matriz[i][j]);
		}
		printf("\n");
	}
	for (i = 0; i < N; i++)
	{
		for (j = 0; j < N; j++)
		{
			printf("numero encontrado (%d) em [%d, %d]: ", s[z], matriz[i][j], i, j);
		}
	}
	return 0;
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@juxt As coisas parecem fora de ordem.

Primeiramente tenha a matriz em mãos:

for (i = 0; i < N; i++)
{
    for (j = 0; j < N; j++)
    {
        // 0 + rand() % ((9 + 1) - 1) eh a mesma coisa que rand() % 9
        matriz[i][j] = rand() % 9;
    }
}

Depois peça os dados para o usuário:

printf("Insira a quantidade de valores para efetuar a busca: ");
scanf("%d", &k);
printf("insira a sequencia de %d numeros a ser procurada na matriz: ", k);
for (z = 0; z < k; z++)
{
    scanf("%d", &s[z]);
}

Imprima a matriz:

printf("\nMatriz\n");
for (i = 0; i < N; i++)
{
	for (j = 0; j < N; j++)
	{
		printf("%5d", matriz[i][j]);
	}
	printf("\n");
}

E por último, procure os valores na matriz:

for (i = 0; i < N; i++)
{
    for (j = 0; j < N; j++)
    {
        for (z = 0; z < k; z++)
        {
            if (matriz[i][j] == s[z])
            {
                //contador = contador + 1;
                printf("\nnumero %d encontrado em [%d, %d]", s[z], i+1, j+1);
            }
        }
    }
}

E veja, quase não mudei nada em seu programa :)

A saída é algo do tipo:

image.png.f4abbe4638030622ac9605ceb88d39d7.png

  • Curtir 1
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@Lucca Rodrigues muito obrigada pela ajuda!!!

@arfneto infelizmente é um trabalho da faculdade cujo é proibido utilizar funções.

2 minutos atrás, nagatonie disse:

@Lucca Rodrigues muito obrigada pela ajuda!!!

@arfneto infelizmente é um trabalho da faculdade cujo é proibido utilizar funções.

agora que vi que entrei na minha outra conta do gmail kkk mas obrigado

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

7 minutos atrás, nagatonie disse:

infelizmente é um trabalho da faculdade cujo é proibido utilizar funções.

 

É muito mais simples usar funções. C de nada serve sem isso. 

 

Se a genial faculdade proíbe, escreva suas funções e termine o programa em 10% do tempo. E depois recorte o código das funções e cole em main(). O simples. 

 

Ninguém vai saber como chegou ao código.  Só vai entregar a solução. E não é como copiar de alguém

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