Greemax Posted July 5, 2012 at 03:25 PM Report Share #467470 Posted July 5, 2012 at 03:25 PM (edited) Boas. Eu estou a programar um gerador de chaves para o Euromilhoes. e em dois loops, practicamente iguais, ao compilar deram me erro(1value required as left operand of assignment). Como ainda não sou muito experiente no uso de "pointers" julgo que seja algo relacionado com isso. Será que alguem me ajuda a corrigir o erro? Aqui está o código: //********************************** //Gerador de Chaves para Euromilhoes //********************************** #include <iostream> #include <stdlib.h> #include <windows.h> using namespace std; int GetRandom(int de, int para); bool VerifyNum(int *outras_chaves, int nova_chave,int array_size); int main() { int numeros[4]; //5 Numeros int estrelas[1]; //2 Estrelas int verchave = 0; srand(GetTickCount()); cout << "Numeros:\n"; for(int x=0 ; x <=4 ; x++ ) //Sortear Numeros { while(!VerifyNum(numeros, verchave, sizeof(numeros)) || verchave=0 ) //ERRO verchave = GetRandom(1,50); //Enaqunto o numero não for novo, vai continuar a gerar numeros[x] = verchave; cout << numeros[x]; } verchave = 0; cout << "Estrelas:\n"; for(int x=0 ; x <=1 ; x++ ) { while(!VerifyNum(estrelas, verchave, sizeof(estrelas)) || verchave=0 ) //ERRO verchave = GetRandom(1,11); //Enaqunto a estrela não for novo, vai continuar a gerar estrelas[x] = verchave; cout << estrelas[x]; } cin.get(); return 0; } int GetRandom(int de, int para) { int rnd; rnd = rand() % (para + 1); return rnd; } bool VerifyNum(int *outras_chaves, int nova_chave,int array_size) //Verificar se o número já foi sorteado { int x; for(x=0; x <= array_size ; x++ ) { if (nova_chave = *outras_chaves + x) return false; //Reprovado, já saiu esse numero else return true; //Aprovado, numero ainda nao sorteado } } Edited July 5, 2012 at 11:43 PM by Baderous geshi Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted July 5, 2012 at 03:28 PM Report Share #467475 Posted July 5, 2012 at 03:28 PM eu nem vou olhar para o código até responderes ás perguntas habituais: - em que linha de código o erro é originado - qual a variável que se queixa - qual a mensagem de erro que o compilador te dá sem isto, simplesmente me recuso a responder, porque sinceramente, a minha vida não é interpretar linhas e linhas de código (desculpa qualquer coisinha, mas este tipo de situação é constante aqui no fórum) IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
pmg Posted July 5, 2012 at 03:29 PM Report Share #467476 Posted July 5, 2012 at 03:29 PM (edited) A comparação, em C++ (e muitas outras linguagens "descendentes" de C), é feita com o símbolo == O simbolo = usa-se para atribuição. if (verchave == 0) /* ... */; // OK if (verchave = 0) /* ... */; // NO O teu compilador diz-te que nao podes atribuir um valor a uma coisa que não é um "lvalue" (não é 1value!). Aparentemente o verchave não é um lvalue e tiveste sorte porque ele se queixou. Se fosse um lvalue, o programa compilava sem erros (mas com warnings, liga sempre o máximo de warnings) mas não dava os resultados certos! Tiveste sorte 🙂 Edited July 5, 2012 at 03:33 PM by pmg What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código! Link to comment Share on other sites More sharing options...
Greemax Posted July 5, 2012 at 03:35 PM Author Report Share #467478 Posted July 5, 2012 at 03:35 PM eu nem vou olhar para o código até responderes ás perguntas habituais: - em que linha de código o erro é originado - qual a variável que se queixa - qual a mensagem de erro que o compilador te dá sem isto, simplesmente me recuso a responder, porque sinceramente, a minha vida não é interpretar linhas e linhas de código (desculpa qualquer coisinha, mas este tipo de situação é constante aqui no fórum) As linhas com erro estão comentadas como //ERRO Não sabia de que variável se queixava A mensagem que aparece no compilador está no titulo e no inicio do tópico Obrigado na mesma HappyHippyHippo pmg Obrigado pela ajuda, eu sei dessa regra mas estava tão focado num erro a volta do apontador que realmente nem pensei que tivesse a ver com aquela parte tão simples do loop. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now