Ayuda con un problema de arreglos en C.

Iniciado por noidroid, 26 Noviembre 2013, 02:50 AM

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

noidroid

Hola, foro. Soy nuevo en el foro registrado pero llevo leyendo este foro desde que me apegue a la programacion. Recientemente me dieron un problema que dice asi
Leer n valores, encontrar el menor, el mayor, el valor promedio de los n valores, mostrar el vector y el valor menor, el mayor, y el promedio de los n valores. En C, he encontrado algunos ejemplos en C y solo los encuentro en C++. Esto es lo que llevo del codigo a la fecha :/

Citar#include <stdio.h>
#include <stdlib.h>
int auxiliar (int V[50], int n);
int main (){
    int V[50], n, i;
    printf ("Este programa lee vectores de hasta 50 datos\n");
    printf ("ingresa n");
    scanf ("%d", &n);
    if (n<0||n>50)
    printf ("Lo siento, ingresa valores posibles\n");
else{
        for (i=0;i<n;i++){
            printf ("ingresa V[%d]  ", i+1);
            scanf ("%d", &V);
        }
         for(i=0;i<n;i++){
             auxiliar (V, n);

         }
    printf("El menor es %d", V[0]);
    printf("El mayor es %d", V[n-1]);
         }
return 0;
}

int auxiliar (int V[50], int n){
      int i,j,aux;
    for (j=1;j<n;j++)
     for (i=0; i<n-1; i++){
         if (V[i+1]<V){
            aux = V[i+1];
            V[i+1]= V;
            V= aux;
         }
     }
}

El programa me manda error y se cierra, alguien podria ayudarme dandome una idea de lo que me falta y del porque se me cierra, saludos!

ThePinkPanther

Podrías hacerlo en c++ de la siguiente forma ...


#include <iostream>
/*
Leer n valores, encontrar el menor, el mayor, el valor promedio de los n valores, mostrar el vector y el valor menor, el mayor, y el promedio de los n valores
*/
using namespace std;
int mayor(int *,int);
int menor(int *,int);
float promedio(int *,int);
int main()
{
    int *vector;
    int n;
    cout<<"Ingrese cantidad de valores : ";cin>>n;
    cout<<endl;
    vector=new int[n]; //reservo memoria dinamica de n enteros
    for(int i=0;i<n;i++)
    {
        cout<<"Ingrese elemento "<<i+1<<":";cin>>vector[i];
        cout<<endl;
    }
    int may=mayor(vector,n);
    int men=menor(vector,n);
    float prom=promedio(vector,n);
    delete []vector; //borro memoria dinamica reservada..
    cout<<"Mayor : "<<may<<endl<<"Menor : "<<men<<endl<<"Promedio : "<<prom<<endl;
    return 0;
}


int mayor(int *arreglo,int longitud)
{
    int may=-99999;
    for(int i=0;i<longitud;i++)
    {
        if(arreglo[i]>may)may=arreglo[i];
    }
    return may;
}

int menor(int *arreglo,int longitud)
{
    int min=99999;
    for(int i=0;i<longitud;i++)
    {
        if(arreglo[i]<min)min=arreglo[i];
    }
    return min;
}


float promedio(int *arreglo,int longitud)
{
    float prom;
    for(int i=0;i<longitud;i++)
    {
        prom=prom+arreglo[i];
    }
    return (prom/longitud);
}