Ver Mensaje Individual
  #2 (permalink)  
Antiguo 12/07/2013, 08:13
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, buenas tardes!!
Bueno voy a intentar ayudarte aunque en realidad no tengo claro un par de cosas que pones.
No entiendo si te refieres a que el usuario va introduciendo uno por uno cada número que se inserta a continuación en el vector o que el usuario inserta un número por ejemplo el 13453 (todo seguido) y tienes que separar los números para introducirlos en el vector. Aún así te explicaré como haría yo ambos casos.

A) El usuario ingresa uno por uno cada número:
Bien, esté caso es muy sencillo unicamente tienes que declarar un vector, e ir asignando a cada posición del vector los números introducidos por teclado.

Código C:
Ver original
  1. #include <stdio.h>
  2. #define DIM 4
  3.  
  4. int main (void)
  5. {
  6.     //Declaración de variables
  7.     int vector[DIM];
  8.     int i=0;
  9.    
  10.     //Petición de datos al usuario
  11.     for(i=0; i<DIM; i++)
  12.      {
  13.       printf("Introduce el numero %d:", i+1);
  14.       scanf("%d", &vector[i]);
  15.       }
  16.      
  17.      //Mostramos el vector
  18.      printf("Vector:");
  19.      for(i=0; i<DIM; i++)
  20.       printf(" %d", vector[i]);
  21.  
  22. getch();
  23. return 0;
  24. }

B)El usuario introduce un número (de varias cifras) y a cada posición del vector hay que asignarle una cifra del número.
Este planteamiento es un poco más complejo. Lo primero que hay que realizar es separar el numero por cifras (unidades, decenas, centenas, unidades de millar....) ese procedimiento se puede realizar utilizando el operador modulo (%) el módulo lo que hace es realizar una división y quedarse con el resto de la división. Para ello también tenemos que utilizar una variable temporal. Para finalizar lo único que hay que hacer es asignar cada cifra del número a un elemento del vector.
Código C:
Ver original
  1. #include <stdio.h>
  2. #define DIM 4
  3.    
  4.     int main()
  5.     {  
  6.         //Declaración de variables
  7.         int numero;
  8.         int vector[DIM];
  9.         int unidades=0, decenas=0, centenas=0, millar=0;
  10.         int temporal=0;
  11.         int i=0;
  12.      
  13.         //Petición del numero
  14.         do
  15.         {
  16.           printf("Introduce un numero:");
  17.           scanf("%d", &numero);
  18.           if(numero > 9999)
  19.            printf("El numero no es valido\n");
  20.         }while(numero>9999);
  21.      
  22.         /*Dividimos el número en unidades, decenas centenas y unidades de millar
  23.         en el caso de este programa como mucho trabajamos con números de 4 cifras*/
  24.         unidades = numero %10;
  25.         temporal = numero /10;
  26.      
  27.         decenas= temporal %10;
  28.         temporal = temporal /10;
  29.      
  30.         centenas= temporal%10;
  31.         millar = temporal /10;
  32.      
  33.         //Asignamos a cada posición del vector una cifra del numero
  34.         vector[0]= millar;
  35.         vector[1]= centenas;
  36.         vector[2]= decenas;
  37.         vector[3]= unidades;
  38.      
  39.         //Imprimimos el vector
  40.         printf("Vector");
  41.         for(i=0; i<4; i++)
  42.           printf(" %d", vector[i]);
  43. getch();
  44. return 0;
  45. }

Otra forma de realizar la segunda opción, se basa también en el algoritmo que use anteriormente de descomponer el número, pero ahora utilizamos un bucle for para realizar la descomposición puesto que así no tendremos que utilizar más variables si los números son de más dígitos (directamente lo guardamos en el vector, sin utilizar variables como "unidades", "decenas"....). Lo único "malo" del siguiente código es que hay que pedir la longitud (número de cifras) que tendrá el número. Se podrían implementar códigos que lo calculasen pero eso ya te lo dejo a tí.
Código C:
Ver original
  1. #include <stdio.h>
  2.  
  3.    
  4.     int main()
  5.     {  
  6.         //Declaración de variables
  7.         int numero=0;
  8.         int dimension=0;
  9.         int temporal=0;
  10.         int i=0;
  11.         int contador=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.           //Declaración del vector
  21.           int vector[dimension];
  22.          
  23.           //En la primera posición del vector almacenamos el primer dígito las uidades
  24.           vector[0] = numero %10;
  25.           temporal = numero /10;
  26.        
  27.           //Con un bucle continuamos almacenando las siguientes cifras
  28.           for(i=1; i<=dimension; i++)
  29.           {
  30.            contador++; //Utilizamos un contador que se incremente para poder imprimir el vector
  31.            vector[i]= temporal %10;
  32.            temporal = temporal /10;
  33.           }
  34.        
  35.          //Imprimimos el vector
  36.          printf("Vector");
  37.          
  38.          /*Imprimimos el vector hacia atrás puesto que las unidades ocupan la primera posición*/
  39.          for(i=contador-1 ;i>=0 ; i--)
  40.            printf(" %d", vector[i]);
  41. getch();
  42. return 0;
  43. }

Última edición por LydiaH; 12/07/2013 a las 08:38