elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  media con arreglos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: media con arreglos  (Leído 1,751 veces)
criser20

Desconectado Desconectado

Mensajes: 7


Ver Perfil
media con arreglos
« en: 4 Abril 2014, 07:01 am »

Código:
no entiendo pq no me funciona esto para sacar la media de un arreglo dinamico, me podrian decir que tiene mal o algun consejo?
code=c]#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 200



void media(int n,int arr[MAX]);

int main()
{int opc, n, arreglo[n] ;

   do{
        system("CLS");
   printf("Seleccione una accion.\n");
   printf("1.Multiplicacion de matrices.\n");
   printf("2.transpuesta de una matriz.\n");
   printf("4.fibonacci.\n");
   printf("7.Media,Varianza.");
   printf("0.Salir");
   scanf("%d", &opc);
    switch(opc){
    case 0:
        printf("gracias por usar el programa");
        system("PAUSE");
        break;

case 7:
    printf("cuantos numeros desea evaluar?");
    scanf("%d", &n);
    media(n, arreglo);
    break;


    }

   } while(opc!=0);
    return 0;
}


void media(int n,int arr[MAX]){
int i, x=0, j;
for (i=0;i<n;i++){
    printf("ingrese el %d numero", i+1);
    scanf("%d", &arr[i]);
}
for (j=0;j<n;j++){
    x=x+arr[j];
}
printf("la media es %d", x/n);
}


En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: media con arreglos
« Respuesta #1 en: 4 Abril 2014, 08:22 am »

*Nota, si a la etiqueta de apertura de "code", le pones =c te coloreará el código con formato C.

Código
  1. int opc, n, arreglo[n] ;

Vamos a ver, tienes n que es una variable no inicializada... y después tienes arreglo[n]... mal vamos.

Además, el compilador no te garantiza que las variables que vayan a crear en orden ( de izquierda a derecha ), en msvc al menos es al revés (primero se "crea" arreglo[n], luego n y finalmente opc ), así que ya sabes.

Por otro lado, arreglo[n] no es, para nada, un arreglo dinámico. La palabra dinámico se reserva para cuando se hace uso de memoria dinámica, es decir, cuando hay una reserva de memoria con malloc o calloc. No es tu caso.

Tu problema de código se soluciona sustituyendo arreglo[n] por arreglo[MAX], pero ya te digo, no es un arreglo dinámico.


En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: media con arreglos
« Respuesta #2 en: 4 Abril 2014, 16:31 pm »

Además de lo indicado por eferion en cuanto a que no es un arreglo dinámico debes declarar como int la variable arr después de introducir el valor de n:

Código
  1. .....................
  2. int opc, n ;
  3. ....................
  4. printf("cuantos numeros desea evaluar?");
  5.    scanf("%d", &n);
  6.    int  arreglo[n] ;
  7.    media(n, arreglo);
  8. ................................
  9.  

Y luego en la función media sería:

Código
  1. void media(int n,int arr[n])

Y para que la media de un valor correcto, es decir con decimales que es lo usual en estos casos, como tienes declarados como int a x y arr debes hacer un cast a float e imprimir como %f o %g:

Código
  1. .............................  
  2. for (j=0;j<n;j++)
  3.    x+=arr[j];
  4. printf("\nla media es %f: \n", (float)x/n);
  5. system("pause");
  6. ......................
  7.  

Por cierto, observa que en el for he quitado las llaves. Siempre que el cuerpo de un for, if, etc tenga una sola línea no son necesarias. También he puesto una pausa para ver el resultado antes de que se limpie la pantalla con el system("CLS").



¡¡¡¡ Saluditos! ..... !!!!




« Última modificación: 4 Abril 2014, 16:46 pm por leosansan » En línea

criser20

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: media con arreglos
« Respuesta #3 en: 4 Abril 2014, 18:46 pm »

gracias a ambos ya lo resolvi de verdad muchas gracias
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Solución para real media y windows media
Multimedia
pabloskyto 3 3,635 Último mensaje 10 Noviembre 2007, 01:27 am
por Songoku
con arreglos
Java
artang 0 2,147 Último mensaje 31 Marzo 2009, 04:54 am
por artang
arreglos en c
Programación C/C++
el futuro 5 3,219 Último mensaje 21 Mayo 2010, 02:08 am
por @synthesize
Calcular moda, mediana, media aritmética, media geométrica de n números en C « 1 2 »
Programación C/C++
ERIK546 13 53,905 Último mensaje 30 Noviembre 2013, 19:31 pm
por EnriqueRodriguezM
Arreglos
Programación C/C++
angel_davidsr 3 2,198 Último mensaje 17 Octubre 2012, 19:46 pm
por Puntoinfinito
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines