Calculo factor

Iniciado por droken26, 17 Febrero 2015, 22:16 PM

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

droken26

Muy buenas a todos, estoy realizando un pequeño programa que calcule un numero factorial, el cual ya lo tengo planteado con la estructura do..while, pero quiero que  cuando me pida el numero a calcular le pongo 0, me salga un mensaje de error y me diga que debo ingresar de nuevo un numero distinto a 0 y vuelva a ejecutarse la sentencia.

Muchas gracias
Un saludo


engel lex

mientras numero ingresado = 0 entonces imprime "no debe ser 0"

no?
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

droken26

#2
Te pongo el ejemplo de calculo, solo faltaria ponerle la condicion de que si es 0 muestre error y nuevamente haga la pregunta de ingresar numero entero.

Código (cpp) [Seleccionar]
#include <stdio.h>

void main()
// Realizamos un menu al objeto que el usuario elija la operacion deseada
   
   {
int num;
   printf("Seleccione la operación que desee realizar \n \n");
   printf("1- Factorial de un numero \n");
   printf("2- xxxxxx \n");
   printf("3- xxxxxxx \n");
   
   scanf("%d",&num);
   switch(num)
   {
       case 1:{
 // Inicio Funcion
 
 unsigned long int N,      /* Número del que calcularemos el factorial */
                   fact=1; /* Factorial calculado */

 printf("\n Dame el numero para calcular su factorial: ");
 scanf("%lu", &N);

 if (N>=2)
    do {
       fact=fact*N;
       N--;
    } while (N>=2);

 printf("\nEl factorial es: %lu.\n", fact);
system("pause");
}
}
}


Mod: mensaje modificado, al publicar codigo, usa las etiquetas GeSHi

engel lex

hacer->
scanf....
<-mientras variable mayor que 0
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

droken26

Pero donde lo inserto en la linea 30?


Gracias

engel lex

no, quieres revisar si es 0 antes de hacer la operación...

lo que el do while de comprobacioen encapsularía es el printf y el scanf (linea 22)
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

droken26

ok, mil gracias
Saludos