Dev - C++ - Crear un vector en una función y regresarlo a otra

 
Vista:
sin imagen de perfil

Crear un vector en una función y regresarlo a otra

Publicado por Yael (2 intervenciones) el 29/11/2013 05:14:40
No se que esta mal en este código, quiero regresar un vector de datos capturados en una función a otra función que me calcule la media de los datos. ¿Alguien sabe cómo?

Es la última es la última que les pido: ¡POR FAVOR!.

Gracias.

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

#define N 1000

int menu(void);
int captura1(void);
int captura2(void);
int maximo(void);
int minimo(void);
int vector(int n, int o);
float media(int n, int o);

int main(void)
{
int n, o, i, X[N], min1, max1, min2, max2, Menu, moda1, Maximo, Minimo, rng;
float meda, mdiana, medarm;
Menu=menu();
switch(Menu)
{
case 1:
o=captura2();
n=captura1();
meda=media(n, o);
printf("La media aritmetica de los datos ingresados es: %f\n", meda);
break;
case 2:
n=captura1();
o=captura2();
max2=maximo();
min2=minimo();
break;
case 3:
n=captura1();
o=captura2();
max2=maximo();
min2=minimo();
// medarm=armonica(n, o, min2, max2);
printf("La media armonica del vector es: %f\n", medarm);
break;
case 4:
n=captura1();
o=captura2();
max2=maximo();
min2=minimo();
// mdiana=mediana(n, o, max2, min2);
printf("La mediana es %f\n", mdiana);
break;
case 5:
n=captura1();
o=captura2();
max2=maximo();
min2=minimo();
// moda1=moda(n, o, max2, min2);
printf("Se repite %d veces.\n", moda1);
break;
case 6:
n=captura1();
o=captura2();
max2=maximo();
min2=minimo();
if(min2>max2)
{
min2=min2+max2;
max2=min2-max2;
min2=min2-max2;
}
printf("\tConfirmacion: Maximo = %d\tMinimo = %d\n", max2, min2);
// Maximo=maxim(n, o, max2, min2);
printf("El maximo del vector ingresado/generado es: %d\n", Maximo);
break;
case 7:
n=captura1();
o=captura2();
max2=maximo();
min2=minimo();
if(min2>max2)
{
min2=min2+max2;
max2=min2-max2;
min2=min2-max2;
}
// Minimo=minim(n, o, min2, max2);
printf("El minimo del vector generado/ingresado es: %d\n", Minimo);
break;
case 8:
n=captura1();
o=captura2();
max2=maximo();
min2=minimo();

printf("\tConfirmacion: Maximo = %d\tMinimo = %d\n", max2, min2);
// rng=rango(n, o, min2, max2);
printf("El rango del vector ingresado/generado = %d\n", rng);
break;
default:
printf("El numero ingresado no es correcto, intenta otra vez.");
return -2;
}
system("PAUSE");
return 0;
}
int menu(void)
{
int op;
printf("\tMEDIDAS ESTADISTICAS DE UN VECTOR DE DATOS\n\n1.Media aritmetica\n2.Media geometrica\n3.Media armonica\n4.Mediana\n");
printf("5.Moda\n6.Maximo\n7.Minimo\n8.Rango\n9.Coeficiente de apertura\n10.Desviacion media\n11.Varianza\n12.Desviacion estandar\n13.Coeficiente de variacion de Pearson\n");
printf("14.Coeficiente de curtosis de Fisher\n15.Tres cuartiles\n16.Diez deciles\n17.k-esimo percentil\n18.Medida de simetria de Pearson\n");
printf("19.Coeficiente de asimetria de Pearson\n20.Momentos centrados\n21.Momentos no centrados\n22.Momento centrado(2)\n\n");
do{
printf("Selecciona la operacion a realizar: ");
scanf("%d", &op);
}while(op<0);
return op;
}
int captura1(void)
{
int n;
do{
printf("Ingrese el numero de elementos de vector: ");
scanf("%d", &n);
}while(n<0||n>N);
return n;
}
int captura2(void)
{
int o;
printf("\tPresione 1 para ingresar los elementos usted mismo.\n\tPresione 2 para generar un rango de numero aleatorios\n\t");
scanf("%d", &o);
return o;
}
int maximo(void)
{
int max;
printf("\tValor maximo: ");
scanf("%d", &max);
return max;
}
int minimo(void)
{
int min;
printf("\tValor minimo: ");
scanf("%d", &min);
return min;
}
int vector(int n, int o)
{
int i, X[N], max2, min2;
if(o==2)
{
max2=maximo();
min2=minimo();
if(min2>max2)
{
min2=min2+max2;
max2=min2+max2;
min2=min2-max2;
}
printf("Maximo = %d\tMinimo = %d\n", max2, min2);
for(i=0; i<n; i++)
{
X[i]= ((max2-min2)*1.0*rand())/RAND_MAX+min2;
printf("X[%d] = %d\n", i+1, X[i]);
}
}
else
{
for(i=0; i<n; i++)
{
printf("\tX[%d] = ", i+1);
scanf("%d", &X[i]);
}
}
return X[N];
}
float media(int n, int o)
{
int i, V[i];
float med;
for(i=0; i<n; i++)
V[i]=vector(n, o);
for(i=0, med=0; i<n; i++)
med+=V[i];
med/=n;
return med;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder