Foros del Web » Programación para mayores de 30 ;) » Programación General »

arreglo en c

Estas en el tema de arreglo en c en el foro de Programación General en Foros del Web. por favor alguien que me diga donde esta el error de este arreglo ya que no me muestra los valores que ingrese.. que hize mal?? ...
  #1 (permalink)  
Antiguo 27/11/2014, 10:39
 
Fecha de Ingreso: noviembre-2014
Ubicación: guadalajara
Mensajes: 14
Antigüedad: 9 años, 4 meses
Puntos: 0
arreglo en c

por favor alguien que me diga donde esta el error de este arreglo ya que no me muestra los valores que ingrese..
que hize mal??

#include <cstdio>


int main (){
int array [5];
int x;

for (int i=0; i<5; i++){
printf("ingresa 5 datos\n");
scanf("%i",&x);
array[x];
}
for (int i=0; i<5; i++){

printf("%i",array[x]);
}
return 0;
}


me deja ingresar bien los datos pero al imprimir me imprime numeros raros
  #2 (permalink)  
Antiguo 03/12/2014, 08:41
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: arreglo en c

Código C:
Ver original
  1. array[x];

Yo ahí no veo ninguna asignación. Más bien yo esperaría encontrarme algo del tipo

Código C:
Ver original
  1. array[i] = x;

Aún así te comento que lo suyo es que aprendas a usar el depurador de código...
  #3 (permalink)  
Antiguo 05/12/2014, 05:39
Avatar de 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

Etiquetas: arreglo, ayuda-general
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:48.