| 
	
		|  Autor | Tema: media con arreglos  (Leído 2,332 veces) |  
	| 
			| 
					
						| criser20 
								
								 Desconectado 
								Mensajes: 7
								
								
								
								
								
								   | 
 
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 
								Mensajes: 1.248
								
								
								
								
								
								   | 
 
*Nota, si a la etiqueta de apertura de "code", le pones =c te coloreará el código con formato C. 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 
								Mensajes: 1.314
								
								
								
								
								
								   | 
 
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:Y luego en la función media sería:.....................int opc, n ;....................printf("cuantos numeros desea evaluar?");    scanf("%d", &n);    int  arreglo[n] ;    media(n, arreglo);................................ 
 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:void media(int n,int arr[n])
 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")..............................  for (j=0;j<n;j++)    x+=arr[j];printf("\nla media es %f: \n", (float)x/n);system("pause");...................... 
 
 
 ¡¡¡¡ Saluditos! ..... !!!! |  
						| 
								|  |  
								| « Última modificación:  4 Abril 2014, 16:46 pm por leosansan » |  En línea | 
 
 |  |  |  | 
			| 
					
						| criser20 
								
								 Desconectado 
								Mensajes: 7
								
								
								
								
								
								   | 
 
gracias a ambos ya lo resolvi de verdad muchas gracias |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  |  |  
 
	
 
 
				
					
						| Mensajes similares |  
						|  | Asunto | Iniciado por | Respuestas | Vistas | Último mensaje |  
						|   |   | Solución para real media y windows media Multimedia
 | pabloskyto | 3 | 4,229 |  10 Noviembre 2007, 01:27 am por Songoku
 |  
						|   |   | con  arreglos Java
 | artang | 0 | 2,344 |  31 Marzo 2009, 04:54 am por artang
 |  
						|   |   | arreglos en c Programación C/C++
 | el futuro | 5 | 3,862 |  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 | 56,240 |  30 Noviembre 2013, 19:31 pm por EnriqueRodriguezM
 |  
						|   |   | Arreglos Programación C/C++
 | angel_davidsr | 3 | 2,757 |  17 Octubre 2012, 19:46 pm por Puntoinfinito
 |    |