/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

Duda para perfeccionar un algoritmo T.T

 
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
nikoven



Registrado: 10 Oct 2004
Mensajes: 10

MensajePublicado: 11/10/2004 7:45 pm
Título: Duda para perfeccionar un algoritmo T.T

Hola a todos, soy nuevo aqui, mi novia kykyou me recomendo esta pagina ^^ dijo que era muy buena y muy amables para poder resolver las consultas, asi que les pregunto mi duda, la cual es, tengo un algoritmo hecho para calcular factoriales, el cual lo realize yo con if anidados, ahora bien lo que quiero hacer ahora es que me valide ademas el numero ingresado es entero o no, el problema es que no se como se hace. Pense en el main agregarle un do-while ( n =! float ) pero no pasa nada Razz ... pueden ayudarme?? ahi les dejo mi programa =)

Código:

#include "stdio.h"
#include "conio.h"

long int f(long int);

void main()
{
   long int n, r;
   clrscr();
   printf("Ingrese el valor de n: \n");
   scanf("%ld", &n);
   if(n>0)
   {
   r = f(n);
   printf("\n El resultado es %ld ", r);
   getch();
   }
   else
   {
      if(n==0)
      {
         printf("\El resultado es 1");
         getch();
      }
      else
      {
         printf("\nEl resultado no existe");
         getch();
      }
   }
}

long int f(long int n)
{
   long int a,b=1.0;
   for(a=n;a>1; a--)
   {
      b=b*a;
   }
   return(b);
}


De antemano muchisimas gracias!!
Volver arriba
alp



Registrado: 12 Abr 2004
Mensajes: 413

MensajePublicado: 12/10/2004 2:48 am
Título:

Hola. La función scanf() ya te resuelve el problema. Al hacer scanf("%ld", &n); , la función ya te devuelve un valor entero.

Si estuvieras utilizando un valor float o double y quieres saber si tiene decimales, puedes utilizar la función floor() definida en <math.h>

Código:
double valor;
...
if (valor - floor(valor) == 0)
   printf("Es un número sin decimales");
...


Un saludo.
Volver arriba
Yahoo Messenger
nikoven



Registrado: 10 Oct 2004
Mensajes: 10

MensajePublicado: 14/10/2004 6:56 pm
Título:

Ok gracias, voy a tratar de probarlo...
en todo caso nunca habia visto ese comando Embarassed
lo unico que queria era que si el usuario 'x' ingresaba un numero decimal el programa dijiera "noooooo!!! esta incorrecto solo numeros enteros!!! " Laughing
algo asi =P


Saludos!!
Volver arriba
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com