Hola a todos
Soy nuevo en el foro asi que primero lo primero: Saludos a todos, tienen una comunidad muy completa por lo que he visto y muy participativa, espero ser una pieza activa de ella y que puedan aprender tanto de mi como yo de uds.
Ahora, el problema:
Estoy aprendiendo C y para ir avanzanado estoy haciendo una calculadora, un proyecto de consola en C::B. una calculadora simple con las 4 operaciones basicas, suma, resta, mutiplicacion y division
El problema es que C::B me lanza un error de definicion multiple y he buscado bastante una solucion sin respuesta asi que acudo a uds, les dejo el codigo:
calc.c
#include <stdio.h>
#include <stdlib.h>
//#include <time.h>
#include <unistd.h>
int suma (int,int);
int resta (int,int);
int multiplicacion(int,int);
int division(int,int);
int validar(char);
int suma (int ia, int ib)
{
int ires = ia+ib;
return ires;
}
int resta (int ic, int id)
{
int ires = ic - id;
return ires;
}
int multiplicacion (int ia, int ib)
{
int ires = ia * ib;
return ires;
}
int division (int ia, int ib)
{
int ires=ia / ib;
return ires;
}
/*int preNum()
{
int ia=0;
int ib=0;
printf ("Escriba dos(2) numeros \n");
scanf("%i"&ia);
scanf("%i"&ib);
return ia,ib;
}
*/
int validar (char gc)
{
//char gc;
//gc = getchar();
int res = 0;
if (gc != 's' || gc != 'r' || gc!='m' || gc!='d')
{
printf ("No a seleccionado un caracter valido"); sleep(3000);
res = 0;
return res;
}
else
{
res=1;
return res;
}
}
int operatoria(char iOp, int ia, int ib)
{
int ires=0;
switch (iOp)
{
case 's':
ires = suma(ia,ib);
break;
case 'r':
ires = resta(ia,ib);
break;
case 'm':
ires = multiplicacion(ia,ib);
break;
case 'd':
ires = division(ia,ib);
break;
}
return ires;
}
main.c#include <stdio.h>
#include <stdlib.h>
//#include <time.h>
#include <unistd.h>
#include <ctype.h>
#include "calc.c"
int main()
{
int ia;
int ib;
int resu=0;
char gch;
do
{
printf ("Que operacion desea realizar suma:s resta:r multiplicacion:m division:d \n");
}while (validar(gch) != 0);
do
{
printf ("Escriba dos(2) numeros \n");
switch (gch)
{
case 's':
resu=suma(ia,ib);
break;
case 'r':
resu=resta(ia,ib);
break;
case 'm':
resu=multiplicacion(ia,ib);
break;
case 'd':
resu=division(ia,ib);
break;
default:
printf ("Escriba digitos validos"); sleep(3000);
main();
}
return 0;
}
¿que puede estar pasando?