Ver Mensaje Individual
  #5 (permalink)  
Antiguo 12/07/2013, 13:18
Avatar de LydiaH
LydiaH
 
Fecha de Ingreso: julio-2013
Ubicación: Ávila, España
Mensajes: 15
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Asignar numeros a un vector

Hola Vosk! gracias por la información la verdad no sé si se podrá hacer así yo siempre he pensado que sí. De todas maneras aún me queda mucho que aprender no tengo ni un año de experiencia estoy empezando. Aquí es verdad que estoy aprendiendo bastante, por ejemplo, este año he tenido una profesora que sí me decía que tenia que poner fflush (stdin) ahora me encuentro aquí que es mejor no usarlo (?) Lo de getch(); igual, siempre he usado getch(); nunca me ha dado ningun problema, supongo que me propones getchar(); por algún motivo en especial, pero la verdad siempre me han dicho que ponga getch(); y no entiendo que diferencia puede haber entre usar getch(); y getchar(), con el fin de que se realice una pausa. De todas maneras gracias! ;) lo tendré en cuenta.

La verdad es que ahora que me fijo eso no lo he hecho nunca =S, funcionar funciona lo he comprobado pero que sea correcto no lo sé me resulta extraño.
Lo he modificado usando memoria dinámica que se supone que es lo normal si la dimensión del vector se obtiene por teclado:

Código C:
Ver original
  1. #include <stdio.h>
  2.    
  3.     int main()
  4.     {  
  5.         //Declaración de variables
  6.         int numero=0;
  7.         int *vector;
  8.         int temporal=0;
  9.         int i=0;
  10.         int contador=0;
  11.         int dimension=0;
  12.      
  13.         //Petición de la dimensión del vector y el número que utilizaremos
  14.           printf("Introduce la dimension:");
  15.           scanf("%d", &dimension);
  16.          
  17.           printf("Introduce un numero:");
  18.           scanf("%d", &numero);
  19.          
  20.           //Asignación de memoria dinamica
  21.           vector=(int*) malloc(dimension*sizeof(int));
  22.          
  23.          
  24.           //En la primera posición del vector almacenamos el primer dígito las unidades
  25.           vector[0] = numero %10;
  26.           temporal = numero /10;
  27.        
  28.           //Con un bucle continuamos almacenando las siguientes cifras
  29.           for(i=1; i<=dimension; i++)
  30.           {
  31.            contador++; //Utilizamos un contador que se incremente para poder imprimir el vector
  32.            vector[i]= temporal %10;
  33.            temporal = temporal /10;
  34.           }
  35.        
  36.          //Imprimimos el vector
  37.          printf("Vector");
  38.          
  39.          /*Imprimimos el vector hacia atrás puesto que las unidades ocupan la primera posición*/
  40.          for(i=contador-1 ;i>=0 ; i--)
  41.            printf(" %d", vector[i]);
  42. getch();
  43. return 0;
  44. }

¿Así esta bien?

PD: he ejecutado el programa utilizando getchar(); en vez de getch(); y la pantalla de ejecución se cierra inmediatamente una vez muestra el último printf... ¿Qué puede ser?¿Entonces?.... Uso getch(); o getchar(); ?

Última edición por LydiaH; 12/07/2013 a las 13:41