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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


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

Desconectado Desconectado

Mensajes: 101


Ver Perfil
programa confuso
« en: 27 Agosto 2012, 17:55 pm »

Alguien me podria explicar este programa, esque estoy empezando y no entiendo el funcionamiento
Código:
  #include <stdio.h>
main()
{
    int i, media=1, suma=0, tabla[4];
    printf("\nEscriba 4 numeros\n\n");
    for (i=0; i<=3; i++)
          scanf("%d", &tabla[i]);
          for (i=0; i<=3; i++)
              {suma+=tabla[i];
              media=(suma/4);}
          printf("\n\n...La media es: %d", media);
          printf("\nLos numeros introducidos son: ");
              for (i=0; i<=3; i++)
                    printf(" %d ", tabla[i]);   
              getchar();
              getchar();
                   
                   
}


En línea

The Swash

Desconectado Desconectado

Mensajes: 194


Programmer


Ver Perfil WWW
Re: programa confuso
« Respuesta #1 en: 27 Agosto 2012, 20:00 pm »

Hola,

Ese código podría representarse de una forma más legible con etiquetas geshi y además con una mejor indentación:

Código
  1. #include <stdio.h>
  2. int main()
  3. {
  4.    int i, media=1, suma=0, tabla[4];
  5.    printf("\nEscriba 4 numeros\n\n");
  6.    for (i=0; i<=3; i++)
  7.        scanf("%d", &tabla[i]);
  8.  
  9.    for (i=0; i<=3; i++)
  10.        suma+=tabla[i];
  11.  
  12.    media=(suma/4);
  13.    printf("\n\n...La media es: %d", media);
  14.    printf("\nLos numeros introducidos son: ");
  15.    for (i=0; i<=3; i++)
  16.        printf(" %d ", tabla[i]);    
  17.    return 0;                    
  18. }

Sencillamente el código pide 4 números que posteriormente los almacena en un arreglo de enteros y luego los suma y saca su media. Muestra los numeros que ingresaste, la media y esto es todo.

Un saludo,
Iván Portilla.


En línea

ecfisa

Desconectado Desconectado

Mensajes: 114


Ver Perfil
Re: programa confuso
« Respuesta #2 en: 27 Agosto 2012, 20:02 pm »

Hola Ander123.

Lo que hace el código es pedir y guardar elementos en un arreglo y obtener su media aritmética (promedio). Te pongo el código comentado para aclarar el funcionamiento:

Código
  1. #include <stdio.h>
  2.  
  3. main() {
  4.  int i,      /* variable de control */
  5.  suma = 0,   /* almacena la suma de los elementos del arreglo */
  6.  tabla[4];   /* arreglo */
  7.  
  8.  /* pedir los elementos */
  9.  printf("\nEscriba 4 numeros\n");
  10.  for (i=0; i<4; i++)
  11.    scanf("%d", &tabla[i]);
  12.  
  13.  /* almacenar la suma de los elementos en 'suma' */
  14.  for (i=0; i<4; i++)
  15.    suma  += tabla[i];
  16.  
  17.  /* mostrar media arimetica */
  18.  printf("\n\nLa media es: %8.2f", suma / 4.0);
  19.  
  20.  /* mostrar los elementos */
  21.  printf("\nLos numeros introducidos son: ");
  22.  for (i=0; i<4; i++)
  23.    printf(" %d ", tabla[i]);
  24.  
  25.  /* pausa para ver el resultado */
  26.  while(getchar()!= '\n');
  27.  getchar();
  28. }
  29.  

Quite la variable media por que no es necesaria.

Saludos.
En línea

bettu


Desconectado Desconectado

Mensajes: 923


Ver Perfil
Re: programa confuso
« Respuesta #3 en: 27 Agosto 2012, 22:31 pm »

Bueno, tal y como te han comentado arriba lo que hace el programa es:

- Se declara las variables, una de ellas es un vector de 4 posiciones para, posteriormente, almacenar los numeros introducidos en cada una de las 4 posiciones.
- Al introducir los 4 numeros, se recorre cada una de las posiciones del vector y va sumando los valores depositandolo en la variable suma.
- Finalmente, te muestra por pantalla los numeros introducidos que se han almacenado en el vector y te muestra la media.


Cuando cojas un poco más de experiencia, te recomiendo que en lugar de declarar la variable TABLA[4] lo hagas así: TABLA[MAX], quedando así:

Código
  1. #include <stdio.h>
  2. #define MAX 4
  3.  
  4. int main()
  5. {
  6.    int i, media=1, suma=0, tabla[MAX];
  7.  

Pero bueno, tiempo al tiempo :)

Saludos!
En línea

bytemachine

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: programa confuso
« Respuesta #4 en: 4 Septiembre 2012, 07:06 am »

Bueno, tal y como te han comentado arriba lo que hace el programa es:

- Se declara las variables, una de ellas es un vector de 4 posiciones para, posteriormente, almacenar los numeros introducidos en cada una de las 4 posiciones.
- Al introducir los 4 numeros, se recorre cada una de las posiciones del vector y va sumando los valores depositandolo en la variable suma.
- Finalmente, te muestra por pantalla los numeros introducidos que se han almacenado en el vector y te muestra la media.


Cuando cojas un poco más de experiencia, te recomiendo que en lugar de declarar la variable TABLA[4] lo hagas así: TABLA[MAX], quedando así:

Código
  1. #include <stdio.h>
  2. #define MAX 4
  3.  
  4. int main()
  5. {
  6.    int i, media=1, suma=0, tabla[MAX];
  7.  

Pero bueno, tiempo al tiempo :)

Saludos!

Yo no entiendo que es lo que hace lo de MAX 4, :s, tengo también poco tiempo en C/C++ y no había visto ejemplos como ese ¿De casualidad no se puede tomar como para que el usuario introduzca la longitud del array?, disculpen mi ignorancia o si pudiera ser una pregunta estúpida

Saludos
En línea

ecfisa

Desconectado Desconectado

Mensajes: 114


Ver Perfil
Re: programa confuso
« Respuesta #5 en: 4 Septiembre 2012, 11:02 am »

Hola bytemachine.

Citar
¿De casualidad no se puede tomar como para que el usuario introduzca la longitud del array?

Si por supuesto, por ejemplo:
Código
  1. int main() {
  2.  int i,n,*vec;
  3.  
  4.  printf("Nro de elementos: ");
  5.  scanf("%d",&n);
  6.  
  7.  vec = (int*)malloc(sizeof(int)*n);
  8.  
  9.  for(i=0; i<n; i++) vec[i] = i;
  10.  ...
  11.  
  12.  free(vec);
  13.  return 0;
  14. }
  15.  

Saludos.

Edito: Me olvide... Aunque no está especificado, seguramente MAX estaría definido de este modo:

Código
  1. ...
  2. #define MAX 4
  3. ...
  4.  

A partir de allí MAX tiene el valor 4, es decir que se puede utilizar en lugar de él.
La ventaja de utilizar MAX en lugar de '4', es que basta cambiar el valor en la definición para que afecte a todo el código. De otro modo habría que cambiar cada ocurrencia de '4'.

« Última modificación: 4 Septiembre 2012, 11:15 am por ecfisa » En línea

bytemachine

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: programa confuso
« Respuesta #6 en: 4 Septiembre 2012, 20:19 pm »

Ya entiendo xD, gracias por la respuesta, andaba realmente perdida jaja, estaba confundiendo con lo se MAX se utilizaba para que el usuario pusiera la longitud de la matriz, (pensé que era otro metodo)

Y sobre el código, si, así si me lo sabía, solo estaba confundida por lo de MAX, muchas gracias por responderme :D

Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
muy confuso sobre puertos
Redes
DaNNiXs 5 2,347 Último mensaje 11 Octubre 2011, 23:48 pm
por multiplayer1080
Confuso
Redes
Vaneik 6 2,837 Último mensaje 23 Octubre 2014, 19:00 pm
por Platanito Mx
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines