Erro ao compilar uma calculadora em C [RESOLVIDO]

1. Erro ao compilar uma calculadora em C [RESOLVIDO]

Erika Andreza
erikazinha

(usa Ubuntu)

Enviado em 09/10/2012 - 18:05h

Eu fiz uma calculadora em C ,porém na hora de compilar aparece essa mensagem de erro:



luna@luna-laptop:~/Documentos$ gcc calculadora4.c -o calculadora4
calculadora4.c: Na função ‘main’:
calculadora4.c:34:1: erro: ‘else’ without a previous ‘if’



Usei o mesmo código no DevC++ no Windows e deu certo.Preciso de ajuda.


Esse é o código,no DevC++ no Windows ,ele compila sem erro



#include <stdio.h>
#include <stdlib.h>

int main()
{
float a,b;
int opcao;
printf("digite um numero:");
scanf("%f",&a);
fflush(stdin);
printf("digite a opcao:"
"\n 1 somar"
"\n 2 subtrair"
"\n 3 dividir"
"\n 4 multiplicar");
scanf("%d",&opcao);

printf("digite outro numero:");
scanf("%f",&b);

switch(opcao)
{
case 1 :
printf("a soma entre %.2f e %.2f = %.2f",a,b,a+b);
break;
case 2 :
printf("a subtracao entre %.2f e %.2f = %.2f",a,b,a-b);
break;
case 3 :
if(b==0);
{
printf("erro");
}
else{
printf("a divisao entre %.2f e %.2f = %.2f",a,b,a/b);

}
break;

case 4 :
printf("a multiplicacao entre %.2f e %.2f = %.2f",a,b,a*b);
break;
}
getch();
return 0;
}



  


2. Re: Erro ao compilar uma calculadora em C [RESOLVIDO]

Daniel Marchi
DMS_

(usa elementary OS)

Enviado em 09/10/2012 - 18:22h

Olha na linha 34, está informando que tem um else sem um if.
Posta o código ae.


3. Re: Erro ao compilar uma calculadora em C [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 09/10/2012 - 18:28h

Adivinhação é pecado. ;)

NOTA DE EDIÇÃO: O comentário acima não é extemporâneo. O código foi colocado na mensagem original por edição, depois de eu ter respondido.


Se você não mostrar o programa, fica muito difícil saber sobre o erro algo mais do que o compilador diz. E o que ele diz é grave: ele encontrou uma cláusula else sem ter visto um comando if correspondente.

Se o código funcionou noutro compilador, pode ser uma diferença de implementação de uma construção do seguinte tipo.

if(cond1)
if(cond2)
exec_cond2_verdade();
else
exec_cond1_falsa();


Apesar do que a forma possa sugerir, essa construção é enganosa porque os espaços em C são ignorados. Cada compilador pode ter sua própria interpretação de se a cláusula else se refere ao primeiro ou ao segundo if.

A forma e resolver é colocar chaves nas devidas posições.

if(cond1) {
if(cond2)
exec_cond2_verdade();
}
else
exec_cond1_falsa();




4. Re: Erro ao compilar uma calculadora em C [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 09/10/2012 - 18:35h

Seu programa está realmente com erro. Se ele funcionou no Windows, você tem que jogar o compilador do Windows no lixo.

Para eliminar o erro que você teve, remova o ponto-e-vírgula entre o fechamento de parênteses do teste da condição b==0 e a abertura das chaves do bloco de código a ser executado se essa condição for verdadeira.


5. Re: Erro ao compilar uma calculadora em C [RESOLVIDO]

Erika Andreza
erikazinha

(usa Ubuntu)

Enviado em 09/10/2012 - 18:43h

Oi meninos tireia o ponto e vírgula do if.Agora a mensagem aparece assim:



luna@luna-laptop:~/Documentos$ gcc calculadora4.c -o calculadora4
/tmp/ccwmwdZN.o: In function `main':
calculadora4.c:(.text+0x18c): undefined reference to `getch'
collect2: ld returned 1 exit status



6. Re: Erro ao compilar uma calculadora em C [RESOLVIDO]

Erika Andreza
erikazinha

(usa Ubuntu)

Enviado em 09/10/2012 - 18:53h

paulo1205 escreveu:

Seu programa está realmente com erro. Se ele funcionou no Windows, você tem que jogar o compilador do Windows no lixo.

Para eliminar o erro que você teve, remova o ponto-e-vírgula entre o fechamento de parênteses do teste da condição b==0 e a abertura das chaves do bloco de código a ser executado se essa condição for verdadeira.


luna@luna-laptop:~/Documentos$ gcc calculadora4.c -o calculadora4
/tmp/ccOYS49A.o: In function `main':
calculadora4.c:(.text+0x18c): undefined reference to `getch'
collect2: ld returned 1 exit status


tá assim agora(tirei o ponto e virgula)






7. Re: Erro ao compilar uma calculadora em C [RESOLVIDO]

Daniel Marchi
DMS_

(usa elementary OS)

Enviado em 09/10/2012 - 18:54h

Tenta isto, tem a ver realmente com as chaves que delimitam os blocos do seu if else.

#include <stdio.h>
#include <stdlib.h>

int main()
{
float a,b;
int opcao;
printf("digite um numero:");
scanf("%f",&a);
fflush(stdin);
printf("digite a opcao:"
"\n 1 somar"
"\n 2 subtrair"
"\n 3 dividir"
"\n 4 multiplicar");
scanf("%d",&opcao);

printf("digite outro numero:");
scanf("%f",&b);

switch(opcao)
{
case 1 :
printf("a soma entre %.2f e %.2f = %.2f",a,b,a+b);
break;
case 2 :
printf("a subtracao entre %.2f e %.2f = %.2f",a,b,a-b);
break;
case 3 :
if(b==0);
{
printf("erro");

else
printf("a divisao entre %.2f e %.2f = %.2f",a,b,a/b);

}
break;

case 4 :
printf("a multiplicacao entre %.2f e %.2f = %.2f",a,b,a*b);
break;
}
getch();
return 0;
}


Eu removi uma chave deste trecho

 if(b==0);
{
printf("erro");

else
printf("a divisao entre %.2f e %.2f = %.2f",a,b,a/b);

}

Ficando apenas um par de chaves para o bloco todo if.


8. Re: Erro ao compilar uma calculadora em C [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 09/10/2012 - 18:56h

erikazinha escreveu:

Oi meninos tireia o ponto e vírgula do if.Agora a mensagem aparece assim:



luna@luna-laptop:~/Documentos$ gcc calculadora4.c -o calculadora4
/tmp/ccwmwdZN.o: In function `main':
calculadora4.c:(.text+0x18c): undefined reference to `getch'
collect2: ld returned 1 exit status


Ao compilar, ligue os flags de diagnóstico do compilador. No seu lugar, eu usaria o seguinte comando.

gcc -Wall -Werror -O2 calculadora4.c -o calculadora4 


Vão aparecer mais mensagens de erro, mas elas vão ajudar você a evitar comporatmentos indesejados pelo seu programa (tente fazer isso antes de continuar com a solução que eu vou mostrar em seguida, para você ver os diagnósticos antecipados e mais detalhados sobre potenciais problemas no seu código).


9. Re: Erro ao compilar uma calculadora em C [RESOLVIDO]

Luis R. C. Silva
luisrcs

(usa Linux Mint)

Enviado em 09/10/2012 - 18:57h

Menina, a função gech() só funciona no Windows. No Linux, use getchar().

E busque sempre fazer o mais simples.

Boa noite.




10. Re: Erro ao compilar uma calculadora em C [RESOLVIDO]

Erika Andreza
erikazinha

(usa Ubuntu)

Enviado em 09/10/2012 - 19:01h

rei_astro escreveu:

Menina, a função gech() só funciona no Windows. No Linux, use getchar().

E busque sempre fazer o mais simples.

Boa noite.


Oi,meninos valeu pela dica.Além de tirar o ponto e virgula que tava após o IF,também removi o Getch();
Obrigada,rapazes.
RESOLVIDO








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts