Logo Studenta

PARCIALITO3

Esta es una vista previa del archivo. Inicie sesión para ver el archivo original

//RESOLUCION DE EJ. DE PARCIALITO DE FUNCIONES
#include <stdio.h>
 
int CARGA();
int VERI_PRIMO (int);
float PROM (int, int);
void MOSTRAR (float, int);
int main()
{
 int NUM, MAX, SUMP=0, SUMNP=0, CONTP=0, CONTNP=0;
 float PROMP, PROMNOP;
 
 //INGRESO DEL PRIMER NUMERO
NUM = CARGA ();
// ACA COMIENZA EL CICLO WHILE, MIENTRAS COD SEA DISTINTO DE 0 VA A SEGUIR PROCESANDO HASTA QUE SE INGRESE NUM = 0
while (NUM != 0) {
	
	if (VERI_PRIMO (NUM) == 1) { // SIGNIFICA QUE EL NUMERO ES PRIMO
		SUMP = SUMP + NUM;
		CONTP ++;
		
		}
 else // SIGNIFICA QUE EL NUMERO NO ES PRIMO
 {
 	
 	
 	if (CONTNP == 0 )
 		
 		MAX = NUM;
 		
 	else 
 		
 		if (MAX < NUM)
			 
 			MAX = NUM;
		 
 	SUMNP = SUMNP + NUM;
 	CONTNP ++;	
 		
		 	
		 }
 
		//INGRESO DE lOS SIGUIENTES NUMEROS
		NUM = CARGA ();
	 } // AQUI SE CIERRA EL WHILE
	
	
	
//AHORA SE CALCULAN LOS PROMEDIOS Y EL MAX Y SE MUESTRAN TODOS LOS RESULTADOS
PROMP = PROM (SUMP, CONTP);
PROMNOP = PROM (SUMNP, CONTNP);
// AHORA SE CALCULAN LOS PROMEDIOS
PROMP = PROM (SUMP, CONTP);
PROMNOP = PROM (SUMNP, CONTNP);
// AHORA SE MUESTRAN LOS RESULTADOS
printf ("\n\n RESULTADOS DE LOS NUMEROS PRIMOS");
MOSTRAR (PROMP, CONTP);
printf ("\n\n RESULTADOS DE LOS NUMEROS NO PRIMOS");
MOSTRAR (PROMNOP, CONTNP);
if (CONTNP == 0)
 printf ("\n\n NO SE INGRESÓ NINGÚN NUMERO NO PRIMO");
else
	printf ("\n\n EL MAXIMO VALOR DE LOS NO PRIMOS ES %d ", MAX);
}
	
			
	
int CARGA ()
{int N;
printf("\nINGRESE NUMERO ");
scanf ("%d", &N); 
return N;
}
float PROM (int S, int C)
{float P;
//SE CALCULA EL PROMEDIO PEDIDO. NO OLVIDAR CHEQUEAR QUE EL DENIMINADOR SEA DISTINTO DE CERO!!!!!!!!	 	
	
		if (C != 0)
		
			P = (float)S / C; //SE CASTEA SUM PARA QUE PROM MUESTRE DECIMALES
		else
			P = 0;
			
return P;
}
void MOSTRAR (float P, int C)
{ 
		printf ("\n\nEl promedio es %.2f y la cantidad es %d ", P, C);
}
	
	
int VERI_PRIMO (int N)
	
{ int I, D=0;
	for (I = 1; I <= N ; I++)
		
		if ( N % I == 0)
		 D++;
	if ( D < 3 ) // SI LA CANTIDAD DE DIVISORES ES MENOR A 3 EL NUMERO ES PRIMO Y SE RETORNA 1. AQUI SE INCLUYE AL 1. EL 1 TIENE UN SOLO DIVISOR. 
	 return 1;
	 
	else
	
	 return 0; // SI LA CANTIDAD DE DIVISORES ES MAYOR A 2 (ES DECIR MAYOR O IGUAL A 3) EL NUMERO NO ES PRIMO Y SE RETORNA 0
	
}

Continuar navegando