• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

bertolo

bug por corrigir

3 mensagens neste tópico

/*calculadora com opção de quit*/
#include <stdio.h>

float calc(void){
char b;
float a,c;
printf(": ");
scanf("%f %c %f", &a, &b, &c);
switch(b){
case '+':return a+c;
case '-':return a-c;
case 'x':
case 'X':
case '*':return a*c;
case '/':return a/c;
default :printf("Erro\n\n");while(getchar() !='\n');main();}
}

int main (void){
int a;
while(1){
printf("1-Operações\n2-Sair\n\nby bertolo\n/");

/**************/

while((scanf("%d", &a) ==0))
{
printf("Opção Inválida\n/");
while(getchar() !='\n');
}
while(a!=1 && a!=2)
{
printf("Opção Inválida\n/");
while(getchar() !='\n');
scanf("%d", &a);
}


/*****************/

if(a==2)
break;
if(a==1)
printf("=%.2f\n\n", calc());
else
break;
}
return 0;
}

É uma calculadora, tem um pequeno bug que não consigo corrigir: depois de cometermos um erro, se quisermos sair o resultado fica -0.00. Não percebi pq.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para começar, faltam os breaks no switch(:D, e depois, no default: não devias chamar a main, deve ser por isso que te aparece o -0.00.

NOTA: Tens uns whiles que ficam à espera que o utilizador carregue no enter mas não mandas carregar no enter... se o utilizador não conhecer o código, fica a pensar que o programa encravou.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora