Ir ao conteúdo
  • Cadastre-se
Tefo94

RESOLVIDO Como concluo esse programa?

Recommended Posts

Exercicio:

Faça um programa para ler 10 numeros DIFERENTES a serem armazenados em um vetor.
Os dados deverão ser armazenados no vetor na ordem que forem sendo lidos, sendo que
caso o usuario digite um número que já foi digitado anteriormente, o programa deverá pedir
para ele digitar outro número. Note que cada valor digitado pelo usuário deve ser pesquisado
no vetor, verificando se ele existe entre os numeros que já foram fornecidos. Exibir na tela o
vetor final que foi digitado.
 
 
 
 
#include <stdio.h>
#include <stdlib.h>
 
int main() {
 
 
int numero[10],i;
 
for(i=0;i<10;i++){
 
printf("Digite o %d valor:",i+1);
scanf("%d",&numero);
 
if(numero==???){
 
printf("\nDigite novamente\n");
}
}
 
printf(" Vetor final:");
 
for(i=0;i<10;i++){
 
printf("\t %d",numero);
}
 
return 0;
}
 
 
Estou com dificuldade de colocar a Condição para que o Usuário não digite o mesmo número.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema é que você já está armazenando o valor diretamente no vetor.

Use outra variável para isso e antes de armazenar o valor da variável no vetor, faça a verificação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema é que você já está armazenando o valor diretamente no vetor.

Use outra variável para isso e antes de armazenar o valor da variável no vetor, faça a verificação.

Bom, pelo o que você disse então preciso colocar o If antes do scanf para verificar assim que o usuario digitar. Porém não to conseguindo formular o código necessário dentro do for. Já declarei a outra variável também.

Você postar seu código? 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, nao compilei nao, mas acho q assim roda do jeito q você quer:

 

#include <stdio.h>
#include <stdlib.h>
 
 
 
int main()
{
int n,i,z;
int vetor [10];
 
scanf("%d",&n);
vetor[0]=n;
for (i=1;i<10;i++){
    scanf("%d",&n);
    for (z=0;z<i;z++){
        if (vetor[z]==n){
            printf("JA DIGITOU ESTE NUMERO ANTES");
            scanf("%d",&n);
        }
        else{
            vetor=n;
        }
        }
    }
 
    system("cls");
    for (i=0;i<10;i++){
        printf(" %d",vetor);
    }
    return 0;
}
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, pelo o que você disse então preciso colocar o If antes do scanf para verificar assim que o usuario digitar. Porém não to conseguindo formular o código necessário dentro do for. Já declarei a outra variável também.

Você postar seu código?

Meu código ficou assim

#include <stdio.h>#define MAX 10int main(){    int valor, existe, vetor[MAX]={0}, i = 0, n;    while(i < MAX){        printf("Valor: ");        scanf("%d", &valor);        for(n = existe = 0; n < i; n++)            if(vetor[n] == valor) existe = 1;        if(existe)            printf("o valor %d ja existe\n", valor);        else            vetor[i++] = valor;    }    printf("\nVetor:\n\n");    for(i = 0; i < MAX; i++)        printf("%d\n", vetor[i]);    return 0;}
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Cara, nao compilei nao, mas acho q assim roda do jeito q você quer:

 

#include <stdio.h>
#include <stdlib.h>
 
 
 
int main()
{
int n,i,z;
int vetor [10];
 
scanf("%d",&n);
vetor[0]=n;
for (i=1;i<10;i++){
    scanf("%d",&n);
    for (z=0;z<i;z++){
        if (vetor[z]==n){
            printf("JA DIGITOU ESTE NUMERO ANTES");
            scanf("%d",&n);
        }
        else{
            vetor=n;
        }
        }
    }
 
    system("cls");
    for (i=0;i<10;i++){
        printf(" %d",vetor);
    }
    return 0;
}

 

Compilou certinho parceiro, obrigado.

Meu código ficou assim

 

#include <stdio.h>#define MAX 10int main(){    int valor, existe, vetor[MAX]={0}, i = 0, n;    while(i < MAX){        printf("Valor: ");        scanf("%d", &valor);        for(n = existe = 0; n < i; n++)            if(vetor[n] == valor) existe = 1;        if(existe)            printf("o valor %d ja existe\n", valor);        else            vetor[i++] = valor;    }    printf("\nVetor:\n\n");    for(i = 0; i < MAX; i++)        printf("%d\n", vetor[i]);    return 0;}

valeu cara, aqui não compilou deve ter sido erro de alguma variável mas deu pra se ter uma ideia.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então você deve ter alterado alguma coisa, porque não há nenhum erro no código que eu postei.

Verdade, dessa vez eu dei ctrl c + ctrl v e funcionou certinho, tinha esquecido de acrescentar aquela biblioteca define. valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×