Tema: arreglo en c
Ver Mensaje Individual
  #3 (permalink)  
Antiguo 05/12/2014, 05:39
Avatar de Eleazan
Eleazan
 
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: arreglo en c

Lo primero, utiliza el HIGHLIGHT del foro, lo harás más legible (y respetará la tabulación que utilizas...)

Después, respecto al código:

Código C:
Ver original
  1. #include <cstdio>
  2.  
  3. int main (){
  4.     int array[5];
  5.     int x;
  6.  
  7.     for (int i=0; i<5; i++){
  8.         printf("ingresa 5 datos\n");
  9.         scanf("%i",&x);
  10.         array[x];
  11.     }
  12.     for (int i=0; i<5; i++){
  13.         printf("%i",array[x]);
  14.     }
  15.     return 0;
  16. }

Vamos a ir comentandolo.

Las variables están bien, asiq vamos al primer for:
Código C:
Ver original
  1. for (int i=0; i<5; i++){
  2.         printf("ingresa 5 datos\n");
  3.         scanf("%i",&x);
  4.         array[x];
  5.     }

Aqui, iteras sobre i. Es decir, creas una variable llamada i que vale 0 (correcto), y la recorres aumentandola en 1 hasta que sea <5, y entonces sale (correcto).

Después tienes un printf con una cadena "Ingresa 5 datos", y lees un entero, y lo almacenas en x. Eso está más o menos bien (Yo sacaría el printf fuera del for, antes... para que no se te repita ese mensaje todo el rato... o que te digan los datos que te quedan!).

Y después, como te ha dicho el compañero de abajo, tienes una linea que no hace nada.
array[x]. Vale. ¿Y? ¿Qué es eso? ¿Qué quieres hacer? Imagino que en ese momento, querrás almacenar en la variable array, el valor X, en la posicion i. Asiq está bastante mal esa linea. Tienes que hacer una asignación ahí:
Código C:
Ver original
  1. array[i] = x;

Y así, el primer for estaría correcto. Ahora vamos al segundo:
Código C:
Ver original
  1. for (int i=0; i<5; i++){
  2.         printf("%i",array[x]);
  3.     }

Aqui, tienes un for que recorre la variable i de 0 a <5, y haces un printf siempre de array[x]. Por tanto, siempre imprimirias el valor de array en la posicion x, ya que esta NO CAMBIA en todo el for. Tendrá el valor del último dato introducido, que podría ser, por ejemplo, 65000, posicion que no existe en tu array.....

Lo correcto sería imprimir la posicion i, que es la que vas recorriendo, y así imprimirias todas las que tiene

Espero que esto te ayude ;)

Saludos!
__________________
>> Eleazan's Source
>> @Eleazan