como puedo validar en c para poder introducir solo numeros en mi proyecto

Iniciado por esnaider, 8 Agosto 2015, 00:48 AM

0 Miembros y 1 Visitante están viendo este tema.

esnaider

nose como podria validar solo el ingreso de numeros aqui les dejo mi codigo fuente para que me puedan ayudar:
Código (cpp) [Seleccionar]
#include <stdio.h>
#include <cstdlib>
#include <conio.h> // getc
Long int factorial(int n)
{
if(n<=1)return 1;
else return(n*factorial(n-1));
}

//calculo de c=n!/r!(n-r)!
long int combinatoria (int n, int r)
{
return (factorial(n)/(factorial(r)*factorial(n-r)));

}

system("cls");
              do{
  do{
if (n>=34 || r>=34 ){ printf("\n\n\t\t\t! error !\n\tINGRESE UN NUMERO ENTERO DEL 1 AL 33\n\t     !GRACIAS POR SU COMPRENSION!\n\n\t\t");
  system ("pause");
}
    system("cls");
printf("\n\t\t\t###### CALCULO DE COMBINACIONES #######\n");
printf("\t\t\t=======================================\n");
printf("\nINGRESE NUMEROS ENTEROS \n");
printf("\nINGRESE  n:\t");
scanf("%d",&n);
printf("\nINGRESE  r:\t");
scanf("%d",&r);
  } while ( n >= 34 || r>=34 );
   
if (n < r){ printf("\n\nNO SE CUMPLE CONDICION PARA LAS TECNICAS DE CONTEO\n\t CONDION= r < n\n\n");
}

else {
printf("\nRESULTADO DE COMBINATORIA[C]=%d\n" , combinatoria(n,r));
               printf("==================================\n\n");
              }
  system ("pause");
  }while (n<r);




y ambien tengo que incluir las permutaciones distinguibles pero nose como empezar alguien porfavor q me ayude a mejorar el codigo


Mod: Los códigos deben ir en etiquetas GeSHi

no escribas en mayúsculas

ivancea96

1: No escribas en mayúsculas.
2: Envuelve el código en las etiquetas GeSHi de código al crear el mensaje, pues mejora la legibilidad y evita errores.

Para la primera duda, una opción que tienes es leer primero cadenas de caracteres, y luego, con una función como atoi(), convertirlo a una variable int.