Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda com exercicio


Guest --Leonardo --

Pergunta

Guest --Leonardo --

Boa tarde pessoal!

Sou novo em C++ e tenho um exercício pra resolver, onde em uma matrix 3X3 preciso, após digitar o numero, verificar se este já existe na matriz, e só então esta será preenchida com o número digitado.

Alguma dica? Não sei nem por onde começar..

Um grande abraço!

Leonardo

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Sei que devo armazenar o número em uma variável auxiliar.

Minha dúvida é como vou testar com cada elemento da matriz??

Meu professor sempre diz: O segredo está nos índices!!!

E ele tem razão.. hehe

Um abraço!!!

Link para o comentário
Compartilhar em outros sites

  • 0

faça um for comparando o valor com cada elemento da matriz....

e coloque uma variavel pra receber um valor caso seja encontrado um numero igual

tipo dentro do for

if(numero=m[x][y])
contador++
ai depois fora do for coloca outro if
if(contador>0) // verifica se foi adicionado algum numero ao contador o q significa q tem um numero repetido
(
printf("numero invalido");
}
else
{
m[x][y]=numero // joga o numero dentro da matriz
}

Editado por Usuk
Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Leonardo --

Mas neste caso ele atribuirá o valor à matriz fora do for?? com índice [2][2]?? como saberemos em que índice há um numero repetido para pedir novamente um número?

Valeu!!

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Leonardo --

Olá novamdente..

Fiz semelhante ao raciocinio do usuk, mas o programa trava durante a execução...

Onde posso estar errando??

Ta aí o codigo...

Um abraço!!!

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

main(){
       int m[3][3],i,j,cont,aux,verif;       
       verif=0;
       for (i=0;i<3;cont++){
           for (j=0;j<3;cont++){
               printf("Digite um numero: ");
               scanf("%d",&aux);
               for (i=0;i=3;i++){
                   for (j=0;j=3;j++) {
                       if(m[i][j]==aux){
                          verif++;
                       }
                   }
               }
               if (verif>0){
                  printf("Numero já digitado");
               }else{
                  m[i][j]=aux;
               }
           }
       }
       printf("Matrix 2 X 2 ");
       for (i=0;i<3;cont++){
           printf("\n");
           for (j=0;j<3;cont++){
               printf("%4d",m[i][j]);
           }
       }    
       system("pause");
      }

Link para o comentário
Compartilhar em outros sites

  • 0

Primeiro erro ta no for

for (i=0;i<3;cont++){

voce está incrementado cont o i sempre vai ser 0 neste caso .... entendeu ?

o segundo esta no segundo for

for (j=0;j<3;cont++){ di novo você esta incrementado cont , tem que incrementar i++;

outra coisa você tem que guardar o valor de cont tipo cont=cont +1; ou cont +=1; ou seja aqui ele vai contar de um a um o cont arruma isso depois se post ae se der mais erro..tem mais erros ....mas troca isso pra você ver se consegue axar os outros

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...