/*
Realizar en C, un programa que incluya las siguientes funciones:
a)una funcion que lea numeros enteros y cargue un arreglo de 30 componentes
enteros positivos validando la entrada de datos. Cuando el arreglo se completa se termina la escritura
b) Una funcion que retorne los valores 0, -1 o 1 segun el arreglo antes cargado este desordenado
ordenado ascendentemente o descendentemente
c) Una funcion que devuelva el promedio de los valores de las componentes del arreglo que ocupan posiciones
pares y el promedio valores de las componentes del arreglo que ocupan posiciones impares. En el programa
principal indicar el mayor de los promedios.
*/
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#define N 3
// validar numeros solamente enteros y practica de paso de valores por return
int validar_entero(int V)
{
scanf("%d",&V);
fflush(stdin);
while(V<0)
{
printf("\nERROR ingrese nuevamente un numero entero\n");
scanf("%d",&V);
fflush(stdin);
}
return V;
}
//para practicar traspaso por referencias
void validar_booleano(char &son)
{
scanf("%c",&son);
fflush(stdin);
son=tolower(son);
while((son!='s')&&(son!='n'))
{
printf("\nERROR ingrese nuevamente letra S para si y N para no\n");
scanf("%c",&son);
fflush(stdin);
son=tolower(son);
}
}
void carga(int A[])
{
int i=0, v;
for(i=0;i<N;i++)
{
printf("\nIngrese valor %d para arreglo de %d componentes\n",i+1,N);
A[i]=validar_entero(v);
}
}
void mostrar(int A[])
{
int i;
printf("\n");
for(i=0;i<N;i++) printf(" %d ",A[i]);
printf("\n");
}
int orden(int A[])
{
int i,j;
//comprobando ascendentemente
for(i=0;(i<N-1)&&(A[i]<=A[i+1]);i++);
//Comprobando descendentemente
for(j=N-1;(j>0)&&(A[j]<=A[j-1]);j--);
if(i==N-1) return 1;
if(j==0) return -1;
//Comprobar si esta desordenado
if((i!=N-1)&&(j!=0)) return 0;
}
float promedio(int cual, int A[])
{
int i,contador=0;
float que=0;
for(i=cual;i<N;i++)
{
que+=A[i];
contador++;
i++;
}
que=que/contador;
return que;
}
int main(int argc, char *argv[])
{
int A[N];
char c;
float PEPE;
do
{
carga(A);
printf("\nEl arreglo que usted a ingresado es el siguiente\n");
mostrar(A);
printf("\nDesea usted cambiarlo? S o N ?\nS o N->");
validar_booleano(c);
}while(c=='s');
switch(orden(A))
{
case -1: printf("\nEl arreglo esta ordenado descendentemente\n");
break;
case 0: printf("\nEl arreglo esta desordenado\n");
break;
case 1: printf("\nEl arreglo esta ordenado ascendentemente\n");
break;
default:printf("\nEsto no deberia suceder\n");
exit(-1);
getchar();
break;
}
if((promedio(0,A))>(promedio(1,A)))
{
printf("\nEs mayor el promedio de los pares con %f\n",promedio(0,A));
}
else
{
if ((promedio(0,A))<(promedio(1,A)))
{
printf("\nEs mayor el promedio de los impares con %f\n",promedio(1,A));
}
else
{
printf("\nSon iguales con promedio %f\n",promedio(0,A));
}
}
getchar();
}
Practica de funciones (ejercicio 1 practico 2)
Actualizando en caliente desde el gabinete de computacion!
Suscribirse a:
Enviar comentarios (Atom)
licencia
Ejercicios de programación by Iván Neira (ae) is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Based on a work at paraserlicenciado.blogspot.com.
0 comentarios:
Publicar un comentario