#include <stdio.h>
#include <stdlib.h>
#include <math.h>
// A minha intenção era que ao chegar no final do programa, ele me perguntasse: "Se quero parar por aqui ou começar de novo".//
int main(){
char OP;
float num1, num2;
int continuar=1,up;
printf("Digite 1 deles [+, -, * ou /]\n");
scanf("%c",&OP);
while(continuar){
printf("Digite o 1\370 n\243mero\n");
scanf("%f",&num1);
printf("Digite o 2\370 n\243mero\n");
scanf("%f",&num2);
switch(OP){
case '+':
printf("%.2f + %.2f = %.2f\n",num1,num2,num1+num2);
break;
case '-':
printf("%.2f - %.2f = %.2f\n",num1,num2,num1-num2);
break;
case '*':
printf("%.2f * %.2f = %.2f\n",num1,num2,num1*num2);
break;
case '/':
printf("%.2f / %.2f = %.2f\n",num1,num2,num1/num2);
break;
default:
printf("Voc\210 digitou uma Opera\207\706o inv\240lida\n");
}
printf("Aperta (S/s) para come\207ar de novo e (N/n) para sair\n");
scanf("%d",&continuar);
switch(up){
case 'S':
case 's':
break;
case 'N':
case 'n':
continuar=0;
}
}
return 0;
}
Seu programa vai dar errado porque você está esperando receber caracteres lá na variável "up", porém ela é do tipo Int. Você tem duas alternativas pra resolver:
1ª Forma:
Declarar a variavel "up" como char.
No momento de receber a opção do teclado, você faz assim se ela for char:
scanf("%c",&up);
2ª Forma:
Ao invés de receber "S" ou "s" você pede para que o usuário digite um inteiro. Por exemplo:
printf("Digite 1 para comecar de novo ou 2 para finalizar");
scanf("%d",&up);
Agora você faz normalmente o Switch. Porém:
switch(up)
{
case 1:
main();
break;
case 2:
exit(1);
break;
}
O "exit(1)" vai fazer o programa finalizar e retornar 1 ao Sistema. Boa sorte!
Para escrever sua resposta aqui, entre ou crie uma conta
Compartilhar