Ir ao conteúdo

Posts recomendados

Postado

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
Postado

@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
Postado

@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
Postado
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
  • Haha 1

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