Bueno de un ejercicio de la cátedra terminaron saliendo las siguientes funciones en c, son bastante simples pero de todas maneras las comparto, espero criticas y opiniones, o sea cualquier aporte u ocurrencia que tengan.
Bueno sin dar mas lata e aquí los códigos.
ASCII to number
atonum.cpp
#include <stdio.h>
int atonum (int numero);
void main(void)
{
char c;
int numero;
printf("\n \t \t ingrese un numero o caracter \n \n \n \t \t");
printf("\n \t \t ingreso el numero o caracter %c que en ASCII es %d \n \n \t \t",c
,c
);
numero=atonum(c);
if (numero!=-1)
{
printf("ahora el numero %c lo pasamos a entero en la variable numero \n \n \t \t",c
); printf("la varible numero contiene el numero %d \n \n \t \t",numero
); }
if (numero
==-1) {printf ("se ingreso un caracter \n \n \t \t");}
return (0);
}
int atonum (int numero)
{
int n;
if ( (numero-48)>=0 && (numero-48)<=9 ) {n=numero-48;}
if ((numero-48)<0 && (numero-48)>9) {n=-1;}
return (n);
}
potencia.cpp
#include <stdio.h>
int pot
(int base
, int exp);
void main(void)
{
printf("ingrese la base \n \n \t \t");
printf("ingrese el exponenete \n \n \t \t");
printf ("el numero %d elevado a la %d es %d \n \n \t \t",base
,exp,p
);
return (0);
}
int pot
(int base
, int exp) {
int p=1;
while (exp>0)
{
p*=base;
}
printf("\n \n \t \t %d \n \n \n ",p
); return (p);
}
Otra forma de hacer la potencia de manera recursiva (Cortesía de rir3760)
#include <stdio.h>
int pot
(int base
, int exp);
void main(void)
{
printf("ingrese la base \n \n \t \t");
printf("ingrese el exponenete \n \n \t \t");
printf ("el numero %d elevado a la %d es %d \n \n \t \t",base
,exp,p
);
return (0);
}
int pot
(int base
, int exp) {
return base
* pot
(base
, exp - 1);
else
return 1;
}
Una función para saber si un numero entrado como caracter es numero u otra cosa.
A esta le puse esnum.cpp
#include <stdio.h>
int esnum (int numero);
void main(void)
{
int numero;
printf("ingrese un numero del 0 al 9 \n \n \t \t");
printf ("La funcion esnum dio %d", esnum
(numero
));
return (0);
}
int esnum (int numero)
{
int r;
if (0<=(numero-48)<=9)
r=1;
r=-1;
return (r);
}
Bueno saludos a todos y desde ya gracias, que esto me salio con la ayuda del foro.
Por cierto la resolución de funciones recursivas es un dolor de ....cabeza.
Bueno saludos y suerte.