Ir ao conteúdo
  • Cadastre-se

Como eu faço para nao repetir vetores no c++


Richer

Posts recomendados

eu tenho q fazer um jogo de anagrama, mas eu travei em uma parte onde toda hora q eu embaralho as letras programa me da letras repetidas, o que eu faço?

 

#include<conio.h>
#include<time.h>
#include<string.h>
using namespace std;
 int main(){
     cout<<"\t\t\t BEM VINDO AO JOGO ANAGRAMA!\n\n";
     cout<<"COMO JOGAR: O JOGADOR IRA OLHA UM CONJUNTOS DE LETRAS TODO EMBARALHADO E TENTARA FORMAR PALAVRAS, SE O USUARIO ACERTAR A PALAVRA IRA PARA A PROXIMA FASE MAS SE ERRAR IRAR CONTINUAR NA MESMA ATE ACERTAR!\n\n";
 char vetor[7];
 char a[7] = {'A','L','E','G','R','I','A'};
 char b[7] = {'A','L','E','G','R','I','A'};
 char c[7] = {'A','L','E','G','R','I','A'};
 char d[7] = {'A','L','E','G','R','I','A'};
 char e[7] = {'A','L','E','G','R','I','A'};
 char f[7] = {'A','L','E','G','R','I','A'};
 char g[7] = {'A','L','E','G','R','I','A'};

do{
 srand (time(NULL));
 rand() ;
 cout<< a[rand() % 6];
 cout<< b[rand() % 6];
 cout<< c[rand() % 6];
 cout<< d[rand() % 6];
 cout<< e[rand() % 6];
 cout<< f[rand() % 6];
 cout<< g[rand() % 6]<<endl;
    cout<<"Digite a palavra: \n\n";
    cin>>vetor;


       if( strcmp(vetor,"alegria")==0){
        cout<<"PARABENS é ANAGRAMA \n\n";
    }

       else if(strcmp(vetor,"galeria")==0){
        cout<<"PARABENS é ANAGRAMA \n\n";
       }
       else if( strcmp(vetor,"alergia")==0){
        cout<<"PARABENS é ANAGRAMA \n\n";
    }
       else{
        cout<<"\t\t :/ errrooou, tente de novo \n\n";
       }
       }while((strcmp(vetor,"alegria")!=0) && (strcmp(vetor,"alergia")!=0) && (strcmp(vetor,"galeria")!=0));

       cout<<"\t\t fase 1 completa \n\n";

       system("pause");
 

Link para o comentário
Compartilhar em outros sites

Boa tarde@Richer

Pensei que através de um vetor de inteiros inicializado com 0s, o programa vai preenchendo este vetor com os índices sorteados e antes que a próxima letra seja impressa faça um consulta no vetor de inteiros se a resposta for positiva retorna a

sortear novo índice e se for negativa imprime a letra do correspondente índice e armazena 1 no vetor de inteiros na respectiva posição;
 

@author Mauro Britivaldo, 06/06/2016
#include <stdio.h>
int getWord(char str_enter[]);
int strShow(char str_enter[]);
int main(void)
{
    char str_my_string[255] = {'\0'};
    while(!getWord(str_my_string)) continue;
    strShow(str_my_string);

    return 0;
}
int getWord(char str_enter[])
{
    int input = 0;
    puts("ENTRE COM 1 PALAVRA:");
    input = scanf("%s", str_enter);
    while(getchar() != '\n') continue;
    return input;
}
int strShow(char str_enter[]) //Aqui é a função ond acontece a mágica ...
{
    char index[255] = {0};
    int input = 0;
    puts("ENTRE COM 1 NUMERO:");
    while(input > -1)
    {
        scanf("%d", &input);
        if(input > 0 && index[input])
        {
           puts("JA ENTROU COM ESTE VALOR,\nTENTE OUTRO OU -1 PARA SAIR");
           continue;
        }
        if(input > -1)
        {
            printf("%d.::.%c\n", input, str_enter[input]);
            index[input] = 1;
        }
        else if(input < 0)
        {
            puts("THANKS!!!");
            return 0;
        }
        puts("ENTRE COM 1 NUMERO:");
        input = 0;
    }
}

 

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