Bom galera eu estou desenvolvendo uma simples calculadora, com as seguintes operações: adição, subtração, multiplicação, divisão, potência e resto da divisão. Esta deve usar diversas funções para resolver o problema e é nesta parte que que está ocorrendo erro o qual não consigo achar, não ocorre relação entre as funções, o erro deve estar na parte do comando switch e nas funções.
Pergunta
gabrielEM
Bom galera eu estou desenvolvendo uma simples calculadora, com as seguintes operações: adição, subtração, multiplicação, divisão, potência e resto da divisão. Esta deve usar diversas funções para resolver o problema e é nesta parte que que está ocorrendo erro o qual não consigo achar, não ocorre relação entre as funções, o erro deve estar na parte do comando switch e nas funções.
#include <stdio.h> #include <stdlib.h> #include <math.h> float a,b; float soma(); float dif(); float mult(); float divisao(); float resto(); float pot(); int main(void) { while(1) { float num1, num2, resultado; char operador; printf("####### Calculadora #######\n"); printf("_______ Operadores ________\n"); printf("Soma\t\t\t[+]\n"); printf("Diferença\t\t[-]\n"); printf("Multiplicação\t\t[*]\n"); printf("Divisão\t\t\t[/]\n"); printf("Resto da divisão\t[%%]\n"); printf("Potência\t\t[^]\n"); printf("Para sair digite\t[000]\n"); printf("_____________________________\n"); printf("Sintaxe:\n[numero][operador][numero]\n\n"); scanf("%f%c%f",&num1,&operador,&num2); switch(operador) { case '+': resultado=soma(num1,num2); break; case '-': resultado=dif(num1,num2); break; case '*': resultado=mult(num1,num2); break; case '/': while(num2=0) { printf("Não há diviso por zero\n"); printf("Insira o valor\n"); scanf("%f", num2); } resultado=divisao(num1,num2); break; case '%': resultado=resto(num1,num2); break; case '^': resultado=pot(num1,num2); break; case '0': if (num1==0 && num2==0) system("exit"); else printf("Operador inválido"); break; default: printf("Operador inválido\n"); break; } printf("=%f", resultado); } return 0; } float soma(a,b) { float r; r=a+b; return r; } float dif(a,b) { float r; r=a-b; return r; } float mult(a,b) { float r; r=a*b; return r; } float divisao(a,b) { float r; r=a/b; return r; } float resto(a,b) { float r; r=(int)a%(int)b; return r; } float pot(a,b) { float r; r=pow(a,b); return r; }Editado por gabrielEMLink para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.