Você está na página 1de 2

Problema FACTORIAL : Lo que debemos tener en cuenta en este programa es:

1.- El tipo de variable que definimos para almacenar el nmero debe ser para almac
enar nmeros naturales. Dado el crecimiento cercano al exponencial que tiene la fu
ncin factorial debes elegir un tipo de dato lo suficientemente grande para que qu
epa el mayor nmero posible de valores.
2.- El factorial de un nmero es multiplicar todos los nmeros comprendidos entre 1
y el propio nmero, por lo tanto esto nos est diciendo que deberemos usar una estru
ctura de repeticin.
3.- Lo ltimo es comprobar que la variable que usamos para almacenar el factorial
ha sido iniciada correctamente, es decir, como lo que vamos a usar es el product
o del resultado anterior de la variable por el nuevo nmero, la variable no puede
estar iniciada a cero (ya que dara como resultado siempre cero), si no a 1.
/* FACTORIA */
#include <stdio.h>
int main(void)
{
unsigned int num,i;
unsigned long int fact;
printf("Introduce un numero natural: ");
scanf("%u",&num);
fact=1;
for(i=1;i<=num;i++)
fact*=i;
printf("El factorial de %u es %lu\n",num,fact);
return 0;
}
Problema MEDIASPN: Este problema es en estructura muy parecido al problema anter
ior. Simplemente debes acumular los valores positivos y negativos por separado,
y contar cuntos hay de cada tipo. Finalmente, la media de cada conjunto de nmeros
es la suma de todos los valores dividido por el nmero de valores.
/* MEDIASPN */
#include <stdio.h>
int main(void)
{
long int pos=0,neg=0;
unsigned int npos=0,nneg=0;
int num;
do
{
printf("Introduce un numero (0 para terminar): ");
scanf("%d",&num);
if (num!=0)
{
if (num>0)
{
pos+=num;
npos++;
}
else
{
nneg+=num;
nneg++;
}
}
}
while (num!=0);
if (npos>0)
printf("La media de los numeros positivos es %f\n",(float)pos/np
os);
else
printf("No se introdujo ningun numero positivo\n");
if (nneg>0)
printf("La media de los numero negativos es %f\n",(float)neg/nne
g);
else
printf("No se introdujo ningun numero negativo\n");
return 0;
}

Você também pode gostar