elrincondelc.com
Inicio :: Foros
Usuario: Clave: Regístrate
Salir


Mayor y Menor de 10 Num ( Array)

 
Publicar Nuevo Tema   Responder al Tema    Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
Autor Mensaje
codepiss



Registrado: 12 Ene 2008
Mensajes: 2
Ubicación: En el sotano

MensajePublicado: 12/01/2008 10:59 am Responder citando
Título: Mayor y Menor de 10 Num ( Array)

Buenas, Soy Novato en programación en c y he intentado resolver este pequeño problema :


Código:

/*Hacer un programa que lea diez valores enteros en un array
desde el teclado y calcule y muestre: la suma, el valor promedio, el
mayor y el menor.*/

#include <stdio.h>
#include <conio.h>

int matrix[10];
int rsp = 0;
int i, j, mayor, menor, final, piss;

int funcion()
{
    for ( i=0; i<10; i++ )
    {
        rsp += matrix[i];
    }
          printf (" la suma del array es = %i ", rsp );
          rsp = ( rsp / 10 );
          printf (" el promedio del array es  = %i ", rsp );
          i = 0;
    for ( i=0; i<10; i++)
    { 
          piss = matrix[i];
          j = i + 1;

          while ( matrix[j] > piss ){
          mayor = matrix[j];
          }
           
          while ( matrix[j] < piss ){
          menor = matrix[j];
          }
     }
          printf (" El mayor de Todos es : %i ", mayor );
          printf (" El menor de Todos es : %i ", menor );
}
     
int main()
{
    printf (" Welcome, Mayor, Menor, Suma, Promedio de Array \n");
    printf ("\n");
    for ( i=0; i<10; i++ )
    {
        printf (" Introduce el Valor %i del Array = ", i);
        scanf ("%i", &matrix[i]);
    }
        final = funcion();
        getch();
}


La cuestión es que cuando lo corro solo me imprime el resultado de la suma y del promedio, faltando el resultado del mayor y el menor de los 10 números, y no se si estoy haciendo algo mal, debe ser una estupidez el error.

De sintáxis bueno, no lo creo por que lo pude compilar; de lógica no lo se porque no he podido ver el resultado del mayor y el menor cuando corro el programa.

Uso el Bloodshed Dev-C++. ¿ Alguna Sugerencia ? ¿ Consejo ?
Saludos.
Volver arriba
Ver perfil del usuario Enviar mensaje privado
rir3760



Registrado: 01 Oct 2004
Mensajes: 7534
Ubicación: Mexico

MensajePublicado: 12/01/2008 11:20 am Responder citando
Título:

El problema con el programa se debe a que en los dos bucles donde encuentras los valores maximo y minimo no hay salida, si los revisas con cuidado te daras cuenta de que si la condicion se cumple la primera vez (matrix[j] > piss) dentro del bucle no hay nada que cambie esa condicion y esto genera el bucle infinito.

Para calcular el maximo y el minimo lo mas sencillo es asumir que el primer elemento es tanto el maximo como el minimo.

Tambien en la declaracion de la funcion main falta el valor de retorno de esta y te convendria si ya vas a utilizar funciones que indiques sus prototipos al principio del programa.

Por ultimo es conveniente evitar bibliotecas de terceros (como en tu caso conio) al menos mientras el programa no funcione correctamente.

El programa coregido es (C estandar):
Código:
#include <stdio.h>
#include <stdlib.h> /* EXIT_SUCCESS y EXIT_FAILURE */

void funcion(int const array[]);

int main(void)
{
   int array[10];
   int i;
   
   printf("Welcome, Mayor, Menor, Suma, Promedio de Array\n\n");
   
   for (i = 0; i < 10; i++){
      printf ("Introduce el valor %i: ", i);
      fflush(stdout);
      if (scanf("%i", &array[i]) != 1)
         return EXIT_FAILURE;
   }
   
   funcion(array);
   system("pause");
   
   return EXIT_SUCCESS;
}

void funcion(int const array[])
{
   int i;
   
   int suma;
   int max;
   int min;
   
   suma = 0;
   for (i = 0; i < 10; i++)
      suma += array[i];
   printf ("La suma del array es = %i\n", suma);
   
   printf("El promedio del array es = %i\n", suma / 10);

   min = max = array[0];
   for (i = 1; i < 10; i++)
      if (array[i] < min)
         min = array[i];
      else if (array[i] > max)
         max = array[i];
   
   printf ("El mayor es : %i\n", max);
   printf ("El menor es : %i\n", min);
}


Un saludo
_________________
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo
codepiss



Registrado: 12 Ene 2008
Mensajes: 2
Ubicación: En el sotano

MensajePublicado: 12/01/2008 12:09 pm Responder citando
Título:

Muchas gracias rir3760 por tus correcciones y sugerencias, aún me falta mucho por practicar Confused

printf (" Saludos ");
Volver arriba
Ver perfil del usuario Enviar mensaje privado
Mostrar mensajes anteriores:   
Publicar Nuevo Tema   Responder al Tema    Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1 Todas las horas están en GMT - 8 Horas

 
Saltar a:  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com, 1999-2007

Un proyecto de UrlanHeat.com