#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