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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con vectores infinitos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con vectores infinitos  (Leído 3,193 veces)
PeinSoR

Desconectado Desconectado

Mensajes: 2


Aún estoy en fase beta


Ver Perfil
Ayuda con vectores infinitos
« en: 20 Marzo 2022, 00:32 am »

Hola a todos!
Tengo poca practica con los arreglos, quiero hacer un programa que sea de conjuntos (n cantidad de conjuntos) y que cada conjunto contenga 5 elementos. Pero no tengo muy claro como hacer eso, hasta el momento este es mi avance, pero al imprimir los valores, el numero de conjunto esta mal y solo los elementos tampoco los imprime bien (en el caso de que trabaje con 2 conjuntos, suman un total de 10 elementos, y solo imprime los últimos 5 que ingrese), espero puedan ayudarme a aclarar mis dudas.  :huh:

Código
  1. #include<stdio.h>
  2. int main(){
  3. int cantidad;
  4. int arreglo1[cantidad];
  5. int arreglo2[5];
  6. int i,j;
  7. printf("Cuantos conjuntos?: ");
  8. scanf("%d",&cantidad);
  9. printf("\nHas elegido trabajar con %d conjuntos procederemos a ingresar los elementos de sus conjuntos",cantidad);
  10. for(i=0;i<cantidad;i++){
  11. for(j=0;j<5;j++){
  12. printf("\nIngrese el elemento %d de su conjunto %d: ",j+1,i+1);
  13. scanf("%d",&arreglo2[j]);
  14. }
  15. }
  16. printf("Tus conjuntos son: )");
  17. for(i=0;i<cantidad;i++){
  18. printf("\nconjunto %d",arreglo1[i]);
  19. for(j=0;j<5;j++){
  20. printf("\t%d",arreglo2[j]);
  21. }
  22. }
  23. }

MOD: El código debe ir entre etiquetas de Código GeSHi


« Última modificación: 20 Marzo 2022, 05:32 am por K-YreX » En línea

-PSR
BloodSharp


Desconectado Desconectado

Mensajes: 804


El Messi-Vegeta :D


Ver Perfil
Re: Ayuda con vectores infinitos
« Respuesta #1 en: 20 Marzo 2022, 02:14 am »

quiero hacer un programa que sea de conjuntos (n cantidad de conjuntos) y que cada conjunto contenga 5 elementos. (...) pero al imprimir los valores, el numero de conjunto esta mal y solo los elementos tampoco los imprime bien (en el caso de que trabaje con 2 conjuntos, suman un total de 10 elementos, y solo imprime los últimos 5 que ingrese), espero puedan ayudarme a aclarar mis dudas.  :huh:

Código
  1. int cantidad;
  2. int arreglo1[cantidad];
Nunca, pero nunca crees un vector fijo sin previamente asignarle un valor. Si vas a trabajar con C puro tenés que crearlo dinámicamente con malloc/calloc y finalmente liberar la memoria con free, en su defecto si utilizás C++ podés utilizar new/delete o vectores dinámicos con el template de vector de la standard template library

Código
  1. int arreglo2[5];
  2.  
  3. for(i=0;i<cantidad;i++){
  4. for(j=0;j<5;j++){
  5. printf("\nIngrese el elemento %d de su conjunto %d: ",j+1,i+1);
  6. scanf("%d",&arreglo2[j]);
  7. }
  8. }
  9. printf("Tus conjuntos son: )");
  10. for(i=0;i<cantidad;i++){
  11. printf("\nconjunto %d",arreglo1[i]);
  12. for(j=0;j<5;j++){
  13. printf("\t%d",arreglo2[j]);
  14. }
  15. }

El tema es que siempre vas a tener lo últimos 5 valores porque no creaste los elementos por conjuntos, sinó que creaste 5 elementos únicamente y los sobreescribís en el primer for anidado con el for...

Ahora si comencemos: ¿Cada conjunto debe tener sus propios 5 elementos verdad?

Código
  1. typedef struct conjunto_s
  2. {
  3.    int m_iElementos[5];
  4. }conjunto_t;

Si se puede usar C++ en este caso yo recomiendo utilizar la plantilla de vectores de la standard template library que permite crear vectores dinámicos facilmente:

Código
  1. #include <vector>
  2. std::vector<conjunto_t> vConjuntos;

Luego creamos un conjunto temporal para ir guardando cada conjunto y añadirselo al vector de conjuntos:
Código
  1. conjunto_t conjuntoTemporal;

Para añadir usamos la función push_back que lo pone al final del vector y cuando terminamos el programa usamos clear.

Ejemplo del programa finalizado:
Código
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <cstdio>
  3. #include <vector>
  4.  
  5. typedef struct conjunto_s
  6. {
  7.    int m_iElementos[5];
  8. }conjunto_t;
  9.  
  10. int main()
  11. {
  12.    int iCantidadConjuntos = -1;
  13.    int iIndiceConjunto, iIndiceElemento;
  14.    std::vector<conjunto_t> vConjuntos;
  15.    conjunto_t conjuntoTemporal;
  16.  
  17.    while (iCantidadConjuntos <= 0)
  18.    {
  19.        printf("\nCuantos conjuntos?: ");
  20.        scanf("%d", &iCantidadConjuntos);
  21.    }
  22.  
  23.    printf("\nHas elegido trabajar con %d conjuntos procederemos a ingresar los elementos de sus conjuntos", iCantidadConjuntos);
  24.    for (iIndiceConjunto = 0; iIndiceConjunto < iCantidadConjuntos; iIndiceConjunto++)
  25.    {
  26.        for (iIndiceElemento = 0; iIndiceElemento < 5; iIndiceElemento++)
  27.        {
  28.            printf("\nIngrese el elemento %d de su conjunto %d: ", iIndiceElemento + 1, iIndiceConjunto + 1);
  29.            scanf("%d", &conjuntoTemporal.m_iElementos[iIndiceElemento]);
  30.        }
  31.        vConjuntos.push_back(conjuntoTemporal);
  32.    }
  33.  
  34.    printf("Tus conjuntos son: ");
  35.    for (iIndiceConjunto = 0; iIndiceConjunto < vConjuntos.size(); iIndiceConjunto++)
  36.    {
  37.        printf("\nconjunto %d", iIndiceConjunto);
  38.        for (iIndiceElemento = 0; iIndiceElemento < 5; iIndiceElemento++)
  39.            printf("\t%d", vConjuntos[iIndiceConjunto].m_iElementos[iIndiceElemento]);
  40.    }
  41.  
  42.    vConjuntos.clear();
  43.    return 0;
  44. }

Como medida final te recomendaría renombrar todas las variables con un nombre más adecuado...


B#


En línea



Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con vectores. « 1 2 »
Programación C/C++
elkiedis 10 5,640 Último mensaje 10 Octubre 2012, 07:19 am
por rir3760
ayuda en c vectores
Programación C/C++
howaboutno 8 2,903 Último mensaje 18 Diciembre 2012, 18:58 pm
por howaboutno
C++ Mas iteradores, con vectores de vectores ¡ juerga !
Programación C/C++
Orubatosu 1 2,380 Último mensaje 4 Diciembre 2014, 17:18 pm
por Eternal Idol
Ayuda con c++ vectores
Programación C/C++
andru23 2 2,230 Último mensaje 23 Abril 2015, 09:11 am
por Orubatosu
[C++] Ayuda con Vectores
Programación C/C++
ianmorar03 1 1,661 Último mensaje 12 Septiembre 2017, 23:55 pm
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines