Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: esnaider en 8 Agosto 2015, 00:48 am



Título: como puedo validar en c para poder introducir solo numeros en mi proyecto
Publicado por: esnaider en 8 Agosto 2015, 00:48 am
nose como podria validar solo el ingreso de numeros aqui les dejo mi codigo fuente para que me puedan ayudar:
Código
  1. #include <stdio.h>
  2. #include <cstdlib>
  3. #include <conio.h> // getc
  4. Long int factorial(int n)
  5. {
  6. if(n<=1)return 1;
  7. else return(n*factorial(n-1));
  8. }
  9.  
  10. //calculo de c=n!/r!(n-r)!
  11. long int combinatoria (int n, int r)
  12. {
  13. return (factorial(n)/(factorial(r)*factorial(n-r)));
  14.  
  15. }
  16.  
  17. system("cls");
  18.               do{
  19.   do{
  20. 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");
  21.   system ("pause");
  22. }
  23.     system("cls");
  24. printf("\n\t\t\t###### CALCULO DE COMBINACIONES #######\n");
  25. printf("\t\t\t=======================================\n");
  26. printf("\nINGRESE NUMEROS ENTEROS \n");
  27. printf("\nINGRESE  n:\t");
  28. scanf("%d",&n);
  29. printf("\nINGRESE  r:\t");
  30. scanf("%d",&r);
  31.   } while ( n >= 34 || r>=34 );
  32.  
  33. if (n < r){ printf("\n\nNO SE CUMPLE CONDICION PARA LAS TECNICAS DE CONTEO\n\t CONDION= r < n\n\n");
  34. }
  35.  
  36. else {
  37. printf("\nRESULTADO DE COMBINATORIA[C]=%d\n" , combinatoria(n,r));
  38.                printf("==================================\n\n");
  39.               }
  40.   system ("pause");
  41.   }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


Título: Re: COMO PUEDO VALIDAR EN C PARA PODER INTRODUCIR SOLO NUMEROS EN MI PROYECTO
Publicado por: ivancea96 en 8 Agosto 2015, 01:35 am
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() (http://www.cplusplus.com/reference/cstdlib/atoi/), convertirlo a una variable int.