Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

LeandroVasconcellos

testar se duas variáveis são sequênciais

Recommended Posts

Olá pessoal, estou com um problema no código C++ abaixo. Quero comparar duas variáveis e verificar se elas são sequenciais, segue código:

#include <iostream>
#include <cstdlib>
#include <cstdio>
using namespace std;
int main(void){
int a1,a2;
int s1, s2, jogo [1];
for(a1=0;a1<=25;a1++){
jogo[0]=a1+1;
s1=jogo[0];
for(a2=a1+1;a2<=26;a2++){
jogo[1]=a2+1;
s2=jogo[1];
cout<<jogo[0];
cout<<jogo[1];
cout<<" ";
if (jogo[1]=jogo[0]+1){
cout<<"sequencia ";
}
else{
cout<<"nao sequencia ";
}
}//fim a2
}//fim a1
cout<<endl;
cout<<endl;
cout<<endl;
}
Quando executo ele escreve corretamente os valores que estão em jogo[0] e jogo[1], mas o teste "if (jogo[1]=jogo[0]+1)" não funciona, pois independentemente dos valores das variáveis o teste nunca dá negativo.
É um código bem simples mas não consigo enxergar pq ele não faz o teste corretamente, agradeço a quem puder me ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troque o "if(jogo[1]=jogo[0]+1)" por "if(jogo[1]==jogo[0]+1)".

O condicional if() espera receber um valor booleano, 0 para NAO, e qualquer coisa diferente de 0 para SIM, o que você esta fazendo é adicionar "jogo[0]+1" a "jogo[1]" e entao perguntando se esse valor é igual ou diferente de 0, como os valores sempre sao diferentes de 0 ele sempre devolve um SIM e por isso q nunca da negativo.

Um if() equivalente ao seu seria:

if( (jogo[1]=jogo[0]+1) == 0)

Espero ter ajudado, glhf =D

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.