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

 

 


Tema destacado: Introducción a Git (Primera Parte)


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

Desconectado Desconectado

Mensajes: 3


Ver Perfil
[C] Elementos de un array
« en: 22 Noviembre 2018, 03:04 am »

Hola, he implentado el siguiente código en lenguaje C para generar una lista de números consecutivos desde 1 a n:

Código:
#include <stdio.h>
   
int main(void){
    printf("Ingresar cantidad de elementos: ");
    int r;
    scanf("%d", &r);
    int i = 0;
    int array[r];
     
    do {
        array[r - 1] = r;
        r = r- 1;
        ++i;
    } while (r > 0);
    printf("Lista: \n");
    for(r = 0; r < i; ++r)
        printf("%d \n", array[r]);
    return 0;
}

Mi problema ahora es el siguiente: en el mismo código arriba, quiero crear un conjunto (digamos A), en el cuál todos los elementos del array se guarden en A de la forma siguiente:

Código:
int A[] = {1,2,3,4,5,6,7,8,9,10};

Esto en el caso de haber ingresado 10 por teclado. ¿Alguien podría ayudarme con este problema?
Saludos.  :-*


En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 902



Ver Perfil
Re: [C] Elementos de un array
« Respuesta #1 en: 22 Noviembre 2018, 03:11 am »

Creo que no entiendo bien la pregunta porque ese programa que tienes si lo ejecutas en introduces 10, ya te está creando un conjunto (que no se llama A, se llama array) en el que tienes los números almacenados en el orden que tú quieres que estén.
Entonces no sé dónde está el problema :huh:

Igual te refieres a que quieres guardar todo el contenido de <array> en otra variable <A>. Es eso??


En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
Amelie

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: [C] Elementos de un array
« Respuesta #2 en: 22 Noviembre 2018, 03:17 am »

Gracias por responder. Exactamente a eso último me refiero, guardar todo el contenido (sigamos con el ejemplo de 10) en otra variable, en este caso A. Esto debido a que en otro programa debo usar lo siguiente:

Código:
int A[] = {1,2,3,4,5,6,7,8,9,10};

Espero hacerme entender. Gracias por responder :)
En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 902



Ver Perfil
Re: [C] Elementos de un array
« Respuesta #3 en: 22 Noviembre 2018, 03:28 am »

Cuando declaras un array se puede inicializar directamente si conoces todos sus datos, es decir, puedes hacer esto:
Código
  1. int array[TAM] = {1,2,3,4,5,...};

Pero en tu caso que no puedes conocer esos valores antes de la ejecución del programa, tienes que declarar el nuevo array vacío y copiar después todos los valores. Como esta copia se hace después de haber declarado el nuevo array, entonces ya no puedes hacer la forma rápida que sería (en tu caso):
Código
  1. int array[TAM] = {1,2,3,4,5,...};
  2. int nuevoArray[TAM] = array;  // Esto no es correcto.

En vez de eso, debes hacer una copia elemento a elemento (como ejemplo):
Código
  1. int array[10] = {0,1,2,3,4,5,6,7,8,9};
  2. int nuevoArray[10];
  3. for(size_t i = 0; i < 10; i++)
  4.    nuevoArray[i] = array[i];

Con esto tendrías el siguiente resultado:
array[10] = {0,1,2,3,4,5,6,7,8,9}
nuevoArray[10] = {0,1,2,3,4,5,6,7,8,9}

Espero haberte ayudado con esto.
En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.595


🏴 Libertad!!!!!


Ver Perfil WWW
Re: [C] Elementos de un array
« Respuesta #4 en: 22 Noviembre 2018, 03:47 am »

Por que no hacerlo al mismo tiempo?

Código
  1.  
  2. #include <stdio.h>
  3.  
  4. int main(void){
  5.    printf("Ingresar cantidad de elementos: ");
  6.    int r;
  7.    scanf("%d", &r);
  8.    int i = 0;
  9.    int array[r],A[r];
  10.  
  11.    do {
  12.        array[r - 1] = r;
  13. A[i] = r;
  14.        r = r- 1;
  15.        ++i;
  16.    } while (r > 0);
  17.    printf("Lista: \n");
  18.    for(r = 0; r < i; ++r)
  19.        printf("%d \t", array[r]);
  20.    printf("\nLista: \n");
  21.    for(r = 0; r < i; ++r)
  22.        printf("%d \t", A[r]);
  23.    return 0;
  24. }
  25.  
En línea

Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW
Amelie

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: [C] Elementos de un array
« Respuesta #5 en: 22 Noviembre 2018, 03:56 am »

Muchas gracias por la ayuda, me sirvió en demasía, ya que pude resolver el problema  ;-) ;-) ;D
En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 902



Ver Perfil
Re: [C] Elementos de un array
« Respuesta #6 en: 22 Noviembre 2018, 04:01 am »

Por que no hacerlo al mismo tiempo?

Código
  1. #include <stdio.h>
  2. int main(void){
  3.    printf("Ingresar cantidad de elementos: ");
  4.    int r;
  5.    scanf("%d", &r);
  6.    int i = 0;
  7.    int array[r],A[r];
  8.    do {
  9.          array[r - 1] = r;
  10.          A[i] = r;
  11.          r = r- 1;
  12.          ++i;
  13.    } while (r > 0);
  14.    printf("Lista: \n");
  15.    for(r = 0; r < i; ++r)
  16.         printf("%d \t", array[r]);
  17.    printf("\nLista: \n");
  18.    for(r = 0; r < i; ++r)
  19.         printf("%d \t", A[r]);
  20.    return 0;
  21. }

Aunque hay un pequeño error, como la serie de números va decreciendo se van guardando los valores desde el final del array hacia el principio. Con eso corregido quedaría así:
Código
  1. do {
  2.        array[r - 1] = r;
  3. A[r - 1] = r; // Esta era la instruccion que guardaba el array <A> al reves que el array <array>
  4.        r = r- 1;
  5.        ++i;
  6. } while (r > 0);

PD: Un tanto extraña y poco convencional esa forma de almacenar un array aunque funcionar claro que funciona. Una alternativa:
Código
  1. #include <stdio.h>
  2.  
  3. int main(void){
  4.    printf("Ingresar cantidad de elementos: ");
  5.    int r;
  6.    scanf("%d", &r);
  7.    int i = 0;
  8.    int array[r],A[r];
  9.  
  10.    for(size_t i = 0; i < r; i++){
  11.        array[i] = i;
  12.        A[i] = i;
  13.    }
  14.  
  15.    printf("Lista: \n");
  16.    for(size_t i = 0; i < r; i++)
  17.        printf("%d \t", array[i]);
  18.  
  19.    printf("\nLista: \n");
  20.    for(size_t i = 0; i < r; i++)
  21.        printf("%d \t", A[i]);
  22.  
  23.    return 0;
  24. }

Edit: De esta manera evitas modificar el tamaño de <r> ya que representa el tamaño del array. Aunque no se va a modificar el tamaño por modificar <r> pero si el código fuese más grande puedes pensar que <r> vale el tamaño del array y como lo has modificado no es así y podrías tener problemas.

Y por último, sabéis por qué si citas un código en C aparecen "&#160" en la tabulación del código?? Eso en códigos entre etiquetas cpp no pasa. Y hay alguna forma de usar el tabulador?? Ya que eso de tener que usar muchos espacios para tabular bien el código... :-\
« Última modificación: 22 Noviembre 2018, 04:06 am por YreX-DwX » En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.595


🏴 Libertad!!!!!


Ver Perfil WWW
Re: [C] Elementos de un array
« Respuesta #7 en: 22 Noviembre 2018, 04:04 am »

La verdad tenia duda de si realmente esto es lo que buscabas ya que el termino

Citar
Esto en el caso de haber ingresado 10 por teclado.

Era un poco confuso.


Si es rara la forma de capturar los datos

Ya que si ingresas 0, el programa da errores con do-while

Saludos

« Última modificación: 22 Noviembre 2018, 04:13 am por AlbertoBSD » En línea

Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW
K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 902



Ver Perfil
Re: [C] Elementos de un array
« Respuesta #8 en: 22 Noviembre 2018, 04:09 am »

He editado esto en mi post anterior pero como veo que habéis respondido mientras lo hacía, lo pregunto de nuevo para que no quede en el olvido:
Citar
Y por último, sabéis por qué si citas un código en C aparecen "&#160" en la tabulación del código?? Eso en códigos entre etiquetas cpp no pasa. Y hay alguna forma de usar el tabulador?? Ya que eso de tener que usar muchos espacios para tabular bien el código... :-\
En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.595


🏴 Libertad!!!!!


Ver Perfil WWW
Re: [C] Elementos de un array
« Respuesta #9 en: 22 Noviembre 2018, 04:21 am »

Y por último, sabéis por qué si citas un código en C aparecen "&#160" en la tabulación del código?? Eso en códigos entre etiquetas cpp no pasa. Y hay alguna forma de usar el tabulador?? Ya que eso de tener que usar muchos espacios para tabular bien el código... :-\

Realmente no  lo habia notado ya que casi no cito post completos.

Al parecer es error del Geshi.

Saludos
En línea

Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Puntero a elementos de array
Programación C/C++
Riki_89D 2 1,670 Último mensaje 26 Mayo 2010, 21:32 pm
por 08l00D
[Ruby] Sumar elementos de un array
Scripting
ka0s 2 6,312 Último mensaje 25 Noviembre 2013, 20:32 pm
por ka0s
Eliminar Elementos repetidos en un array
Programación C/C++
maikelowen 6 5,277 Último mensaje 8 Enero 2015, 10:21 am
por Orubatosu
Array elementos repetidos
Programación C/C++
LGG 1 1,550 Último mensaje 5 Mayo 2015, 17:32 pm
por eferion
Eliminar elementos repetidos en un Array
.NET (C#, VB.NET, ASP)
okik 2 5,561 Último mensaje 23 Junio 2015, 03:16 am
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines