Programación General > C/C++

 Arreglos unidimensionales!

(1/2) > >>

asyba:
hola que tal me diero de tarea un ejercicio en que tnego que cargar x cantidades de valores en un vector y calcularle el promedio de los numeros que contienen ese vector,, hacer un menu,, calcular los numeros negativos,,,,, y el numero menor de todos,, aca esta lo que hice

en la parte del promedio no se como sacarlo prove pero no me da,, alguna ayudita..?


--- Código: C# ---#include<iostream.h>#include<conio.h>#include<ventanas.h>    void cargar(int v[50],int n);    void menor(int v[50],int n);    void mostrar(int v[50],int n);    void promedio(int v[50],int n);    void negativo();    void menu(); void main(){    clrscr();    textbackground(RED);    menu(); } 

--- Código: C# ---void menu(){    int op,pro,n;    int v[50];    char opciones[6][30]={"1-.Cargar","2-.El menor valor","3-.Promedio","4-.Valores negativos","5-.Mostrar?","6-.Salir"};    //n=0;    clrscr();    do    {        clrscr();        op=menu(opciones,6,38,5,RED,WHITE);        switch(op)        {        case 1: cargar(v,n);                break;        case 2: menor(v,n);                break;        case 3: promedio(v,n);                break;        case 4: negativo();                break;        case 5: mostrar(v,n);                break;        case 6: break;        }    }    while(op!=6);} 

--- Código: C# ---void cargar(int v[50],int n){    int i;    clrscr();    do    {        cout<<"Cargue cuantos componentes quiere (no mas de 50): ";        cin>>n;    }    while(n<=0  || n>100);    cout<<"nCargue los valores se les pide:n";    for(i=0;i<n;i++)    {        cout<<"V["<<i<<"]: ";        cin>>v[i];    }    cout<<"nPrecione la tecla ENTER para volver al menu.";    getch();}void menor(int v[100],int n){    int i,x;    ///*    clrscr();    if(n>0)    {     cout<<"El menor valor contenido en el arreglo es: "<<x<<" y se encuentra en el componente: "<<i;     }    else    {        cout<<"Usted no ha cargado ningun valor!!!";    }    cout<<"nPrecione la tecla ENTER para volver al menu.";    getch();}void promedio(int v[50],int n){    int i,acum,p,pro;    acum=0;    clrscr();    if(n>0)    {    for(i=0;i<n;i++)    {    acum+=v[i];    }    pro=acum/n;     //p=promedio(v,n);    cout<<"El promedio de los valores contenidos en el arreglo es: "<<pro;    //return pro;    }    else    {        cout<<"Usted no ha cargado ningun valor!!!";    }    cout<<"nPrecione la tecla ENTER para volver al menu.";    getch();}void negativo(){    /*    clrscr();     if(n>0)    {           cout<<"La cantidad de numeros negativos que tiene el arreglo son: "<<neg;    }    else    {        cout<<"Usted no ha cargado ningun valor!!!";    }    cout<<"nPrecione la tecla ENTER para volver al menu.";    getch();    */}void mostrar(int v[50],int n){    int i;    clrscr();    if(n==0)    {    cout<<"Usted no a ingresado ningun valor!!!";    }    else    {    cout<<"El arreglo que usted ingreso es: ";    for(i=0;i<n;i++)    {        cout<<"nV[ "<<i<<"]: "<<v[i];    }    }    cout<<"nPrecione la tecla ENTER para volver al menu.";    getch();} 

Sankara:
Hola,
bueno en primer lugar el vector no lo declaras bien
vector<int> v(50); debería ser así para darle tamaño 50 y no con corchetes, los corchetes son el operador de acceso a los elementos

por otro lado, en la función promedio no estás pasando bien el vector, deberías pasarlo así:

void promedio(vector<int> &v,int n)

y la utilizarías así promedio(v, n);

a ser posible pasa en el vector por referencia en el prototipo. La función que tienes para calcular la media no está mal... simplemente ten en cuenta que estás haciendo una división entera, por eso no te sale el resultado que esperas... para ello deberías hacer conversión a float...

por ejemplo así:

float pro;
y al salir del bucle pones
pro=(acum*1.0)/n;

m0skit0:

--- Cita de: "Sankara" ---bueno en primer lugar el vector no lo declaras bien
vector<int> v(50); debería ser así para darle tamaño 50 y no con corchetes, los corchetes son el operador de acceso a los elementos
--- Fin de la cita ---
Falso. Puedes declarar perfectamente un vector de enteros de tamaño 50 así: int v[50]

Basándonos en esto, las declaraciones de funciones: void promedio(int v[],int n).

asyba:
grax por eso

otra cosa en void mostrar

cuando lo compilo y selecciono esa opcion del menu no me aparece lo que carge por que sera...

y cuando pongo si n == 0 que mediga que no carge nada y si n>0 que haga lo que esta dentro de esas llavaes,,, pero lo que me pasa es que siempre me dice usted no hacargado datos osea me toma n==0 y eh cargado datos..... me ayudan...

m0skit0:
Explícate un poco mejor, por favor, no he entendido cuál es el problema...

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa