else em c++, não dá certo.. [RESOLVIDO]

1. else em c++, não dá certo.. [RESOLVIDO]

Jose Renan
JoseRenan

(usa Ubuntu)

Enviado em 25/03/2011 - 10:09h

Olá pessoal, estou tentando fazer um programa para converter °C em °F e vice-versa:

//conversão celsius<=>fahrenheit
# include <iostream>
using namespace std;
int main ()
{
double c, f, m;
cout<<"c p/ celsius>fah. e f p/ fah.>celsius:";
cin>>m;
if(m==c)
cout<<"Digite a temperatura em celsius:";
cin>>c;
f=(-9c-160)/-5;
cout<<"Graus celsius iguais a"<<f<<"graus fahrenheit."<<endl;
system ("PAUSE");
return 0;
else
cout<<"Digite a temperatura em fah.:";
cin>>f;
c=(5f-32)/9;
cout<<"Graus Fahrenheit iguais a"<<c<<"graus celsius"<<endl;
system ("pause");
return 0;
}

Só que o dev tá acusando erro no else, como sou noob ainda não sei definir e/ou resolver o problema, por isso estou pedindo ajudinha. O que tem de errado aí?


  


2. MELHOR RESPOSTA

Mauricio Souza Klein
Hebang

(usa Arch Linux)

Enviado em 25/03/2011 - 10:23h

Você esqueceu das chaves no if e else:

Tipo:

if( m == c ){
...
...
...
}
else{
...
...
...
}

Você não precisa usar chaves apenas quando o if ou else tiver apenas um comando. O mesmo ocorre para while, for, do while, etc...

Outro problema são as suas operações matemáticas:

Por exemplo "2f" seria "2*f"

Logo, suas contas ficariam:
f=(-9*c-160)/(-5) e c=(5*f-32)/9;

Espero ter ajudado!

3. Re: else em c++, não dá certo.. [RESOLVIDO]

Jose Renan
JoseRenan

(usa Ubuntu)

Enviado em 25/03/2011 - 12:30h

obg cara, não tinha visto esses erros, concertei o programa e ele tá funcionando bem:

//conversão celsius<=>fahrenheit
# include <iostream>
using namespace std;
int main ()
{
double m, c, f;
cout<<"Entre com 1 para converter celsius em fah. e 2 para converter fah. em celsius:";
cin>>m;
if(m==1)
{
cout<<"Digite a temperatura em celsius:";
cin>>c;
f=(-9*c-160)/-5;
cout<<c<<" grau(s) celsius igual(is) eh a "<<f<<" graus fahrenheit."<<endl;
system ("PAUSE");
return 0;
}else
{
cout<<"Digite a temperatura em fah.:";
cin>>f;
c=5*(f-32)/9;
cout<<f<<" grau(s) Fahrenheit eh igual(is) a "<<c<<" graus celsius"<<endl;
}
system ("pause");
return 0;
}


agora to tentando fazer outro só q também está dando erro, confusão de opções:


// v=v0 + at
#include <iostream>
using namespace std;
int main ()
{
double v, v0, a, t;
cout<<"Digite a velocidade v0 (se quiser descobrí-la digite 1): ";
cin>>v0;
if (v0==1) //-v0=-v+at
{
cout<<"Digite a velocidade v, a aceleracao a e o tempo t:";
cin>>v>>a>>t;
v0=(-v+a*t)/-1;
cout<<"Velocidade v0 igual a "<<v0<<" m/s"<<endl;
system ("PAUSE");
return 0;
}else
{
cout<<endl<<"Continuando...";
}
cout<<"Digite a aceleração a (se quiser descobri-la digite 2):";
cin>>a;
if(a==2) //a=(v0 - v)/-t
{
cout<<"Digite a velocidade v e o tempo t:";
cin>>v>>t;
a=(v0-v)/-t;
cout<<"A aceleração é "<<a<<" m/s²"<<endl;
system ("PAUSE");
return 0;
}else
{
cout<<"Continuando...";
}
cout<<"Digite o tempo t (se quiser descobri-lo digite 3):";
cin>>t;
if(t==3)
{
cout<<"Digite a aceleração:";
cin>>a;
t=(v0-v)/-a;
cout<<"Tempo t igual a "<<t<<" s"<<endl;
system ("PAUSE");
return 0;
}else
{
cout<<"Continuando...";
}
v=v0+a*t;
cout<<"Velocidade v igual a "<<v<<" m/s"<<endl;
system ("PAUSE");
return 0;
}






4. Re: else em c++, não dá certo.. [RESOLVIDO]

André
andrezc

(usa Debian)

Enviado em 25/03/2011 - 12:44h

Defina "está dando erro" e "confusão de opções".


5. Re: else em c++, não dá certo.. [RESOLVIDO]

Mauricio Souza Klein
Hebang

(usa Arch Linux)

Enviado em 25/03/2011 - 13:00h

Sem problemas cara, estamos aqui pra ajudar :)

Apenas marque o tópico como resolvido, para auxiliar outras pessoas na busca por informações.

Abraço!


6. Re: else em c++, não dá certo.. [RESOLVIDO]

Jose Renan
JoseRenan

(usa Ubuntu)

Enviado em 27/03/2011 - 14:35h

tipo se a velocidade inicial ou v0 for 1 vai dar treta e se ponho letras no lugar da opção dá errado.



7. Re: else em c++, não dá certo.. [RESOLVIDO]

André
andrezc

(usa Debian)

Enviado em 28/03/2011 - 19:49h

Isso porque você está tratando variáveis do tipo inteiro. Você pode ignorar letras, se quiser. Por exemplo:

#include<iostream>
#include<cstdio>

int main()
{
...int _firstValue;
.../* Ignora tudo de A à Z */
...std::scanf("%[^A-Z]d",&_firstValue);

ou você pode trabalhar com as variáveis do tipo char. Neste caso, basta tratar o 1 como '1', por exemplo.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts