VictoOr Postado Novembro 18, 2014 Denunciar Share Postado Novembro 18, 2014 #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <math.h> // Funcao que calcula o fatorial de um numero int fatorial(int numero) { int fat = 1; int i; for(i = numero; i > 1; i--){ fat *= i; } return fat; //Funcao que calcula a Raiz Quadrada com 2 poisicoes decimais float raiz_quadrada(float valorRaiz) { float resultado_1,subtrai_1,passo_1; float resultado_2,subtrai_2,passo_2; float resultado_3,subtrai_3,passo_3; float raiz; subtrai_1 = 1; passo_1 = 0; passo_2 = 0; passo_3 = 0; resultado_1 = valorRaiz; while (resultado_1 >= subtrai_1){ resultado_1 = resultado_1 - subtrai_1; subtrai_1 = subtrai_1 + 2; passo_1 = passo_1 + 1; } if (resultado_1 != 0) { resultado_2 = resultado_1 * 100; subtrai_2 = (passo_1 * 20) + 1; passo_2 = 0; while (resultado_2 >= subtrai_2){ resultado_2 = resultado_2 - subtrai_2; subtrai_2 = subtrai_2 + 2; passo_2 = passo_2 + 1; } if (resultado_2 != 0){ resultado_3 = resultado_2 * 100; subtrai_3 = (((passo_1 * 10) + passo_2) * 20) + 1; passo_3 = 0; while (resultado_3 >= subtrai_3){ resultado_3 = resultado_3 - subtrai_3; subtrai_3 = subtrai_3 + 2; passo_3 = passo_3 + 1; } } } else { passo_2 = 0; passo_3 = 0; } raiz = ((passo_1 * 100) + (passo_2 * 10) + passo_3) / 100; return raiz; } int potencia (int base,int expoente){ int resultado = 1; do { resultado *= base; expoente--; }while (expoente > 0); return resultado; } int main(int argc, char*argv[]) { int numero1, numero2, resultado, fat; int base, expoente; int binario[8]; float numeroPorcentagem,resultadoPorcentagem; float valorRaiz,resultadoRaiz; char oper; do { // Menu //printf("\t\t\t\tCALCULADORA\n\n"); system("title ATPS 02: CALCULARODA V1.0"); system("color 8e"); printf("\t\t\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD");printf("\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB\n"); printf("\t\t\t\xBA C A L C U L A D O R A \xBA\n"); printf("\t\t\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD");printf("\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC\n"); printf("\n\n"); printf("\t(+) - Soma\t\t\t(P) - Porcentagem\n"); printf("\t(-) - Subtracao\t\t\t(F) - Fatorial\n"); printf("\t(*) - Multiplicacao\t\t(B) - Conversao Binario -> Decimal\n"); printf("\t(/) - Divisao\t\t\t(D) - Conversao Decimal -> Binario\n"); printf("\t(E) - Exponenciacao\t\t(S) - Sair\n"); printf("\t® - Raiz quadrada\n"); printf("\tOpcao: "); oper = getche(); // Operações switch( oper ) { case '+': printf("\n\n\tS O M A"); printf("\n\n\tPrimeiro valor: "); scanf("%d", &numero1); printf("\tSegundo valor: "); scanf("%d", &numero2); resultado = numero1 + numero2; printf("\n\t%d + %d = %d", numero1, numero2, resultado); break; case '-': printf("\n\n\tS U B T R A C A O"); printf("\n\n\tPrimeiro valor: "); scanf("%d", &numero1); printf("\tSegundo valor: "); scanf("%d", &numero2); resultado = numero1 - numero2; printf("\n\t%d - %d = %d", numero1, numero2, resultado); break; case '*': printf("\n\n\tM U L T I P L I C A C A O"); printf("\n\n\tPrimeiro valor: "); scanf("%d", &numero1); printf("\tSegundo valor: "); scanf("%d", &numero2); resultado = numero1 * numero2; printf("\n\t%d * %d = %d", numero1, numero2, resultado); break; case '/': printf("\n\n\tD I V I S A O"); printf("\n\tPrimeiro valor: "); scanf("%d", &numero1); printf("\tSegundo valor: "); scanf("%d", &numero2); if(numero2 == 0) { printf("\n\tErro divisao por zero"); printf ("\n\n\topcao invalida"); break; } resultado = numero1 / numero2; printf("\n\t%d / %d = %d", numero1, numero2, resultado); break; case 'e': case 'E': printf("\n\n\tE X P O N E N C I A C A O"); printf("\n\n\tBase: "); scanf("%d", &base); printf("\tExpoente: "); scanf("%d", &expoente); if (expoente == 0){ resultado = 1; } else { resultado = potencia(base,expoente); } printf("\n\t%d elevado a %d = %d", base, expoente, resultado); break; case 'r': case 'R': printf("\n\n\tR A I Z Q U A D R A D A"); printf("\n\n\tValor: "); scanf("%f", &valorRaiz); resultadoRaiz = raiz_quadrada(valorRaiz); printf("\n\tRaiz quadrada de %.0f = %.0f", valorRaiz, resultadoRaiz); break; case 'p': case 'P': printf("\n\n\tP O R C E N T A G E M"); printf("\n\n\tValor: "); scanf("%d", &numero1); printf("\tPorcentagem: "); scanf("%d", &numero2); resultado = (numero1 * numero2) / 100; printf("\n\t%d %% de %d = %d", numero2, numero1, resultado); break; case 'f': case 'F': printf("\n\n\tF A T O R I A L"); printf("\n\n\tValor: "); scanf("%d", &numero1); resultado = fatorial(numero1); printf("\n\tO fatorial de %d = %d", numero1, resultado); break; case 'b': case 'B': printf("\n\n\tB I N A R I O P A R A D E C I M A L"); printf("\n\n\tDigite o numero binario(8 bits): "); scanf("%d", &numero1); resultado = binario_decimal(numero1); printf("\n\tEquivalente em Decimal: %d", resultado); break; case 'd': case 'D': printf("\n\n\tD E C I M A L P A R A B I N A R I O"); printf("\n\n\tDigite o numero em decimal(256): "); scanf("%d", &numero1); resultado = decimal_binario(numero1); printf("\n\tEquivalente em Binario: %d", resultado); break; case 's': case 'S': printf("\n\n\tPrograma finalizado"); break; default: printf("\n\n\tOpcao Invalida"); } printf("\n\n\t"); system("PAUSE"); system("cls || clear"); }while(oper != 'S' && oper != 's'); return 0; } Está dando os seguintes erros In function 'fatorial': [Error] expected declaration or statement at end of input Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 lenardo88 Postado Agosto 30, 2016 Denunciar Share Postado Agosto 30, 2016 cara pra que fazer um código tão grande assim .-. vou dar lhe uma dica. sempre escrever comentários, e dividir paricalmente seus ifs e loops e variaveis. Eu sou novo aqui no forum mas entendo bastante em C e C++ se eu tivesse visto eu teria lhe ajudado mas cuidado seu programa está bem confuso até para quem entende muito na programação Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
VictoOr
Link para o comentário
Compartilhar em outros sites
1 resposta 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.