0

Tengo una duda muy grande, soy novato en esto de programación y debo crear dos conjuntos e ingresar elementos en esos conjuntos (valores de 0-9) y después debo escribir pares ordenados con respecto a los elementos que ingrese en cada conjunto y no se como seria, hasta ahora voy asi:

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
main(){
int cantA, cantB;
int numA[cantA], numB[cantB];
// Entrada por teclado para la cantidad de elementos de A y B
do{
    printf("Ingrese la cantidad de elementos entre 0 y 9 para el conjunto A: ");
    scanf("%d",&cantA);
    if(cantA>=0 && cantA<=9)
        printf("");
    else{
        printf("INCORRECTO. NO CUMPLE CON EL RANGO ESTABLECIDO \n");
    }
} while(cantA<0 || cantA>9);
do{
    printf("Ingrese la cantidad de elementos entre 0 y 9 para el conjunto B: ");
    scanf("%d",&cantB);
    if(cantB >=0 && cantB<=9)
        printf("");
    else{
        printf("INCORRECTO. NO CUMPLE CON EL RANGO ESTABLECIDO \n");
    }
} while(cantB<0 || cantB>9);
system("cls");
//Ingreso de los elementos de cada conjunto
for(int i=0;i<cantA;i++){
    do{
    printf("Ingrese los elementos entre 0 y 9 para el conjunto A: ");
    scanf("%d",& numA[i]);
    if(numA[i]>=0 && numA[i]<=9)
    printf("");
    else{
        printf("INCORRECTO. NO CUMPLE CON EL RANGO ESTABLECIDO \n");
    }
    } while (numA[i]<0 || numA[i]>9);
}
for(int i=0;i<cantB;i++){
    do{
    printf("Ingrese los elementos entre 0 y 9 para el conjunto B: ");
    scanf("%d",& numB[i]);
    if(numB[i]>=0 && numB[i]<=9)
    printf("");
    else{
        printf("INCORRECTO. NO CUMPLE CON EL RANGO ESTABLECIDO \n");
    }
    } while (numB[i]<0 || numB[i]>9);
}
 system("cls");
 // presentacion de los dos conjuntos
 printf("CONJUNTO A {");
for(int i=0;i<cantA;i++){
printf("%d,", numA[i]);
}
printf("} \n");
printf("\n");
printf("CONJUNTO B {");
for(int i=0;i<cantB;i++){
printf("%d,", numB[i]);
}
printf("} \n");
printf("\n");
//Ingreso de los pares ordenados

Me falta el ingreso de los pares ordenados. Me ayudarían mucho

josuegarc
  • 1
  • 1
  • 1
    El código que has compartido es [tag:c] no [tag:c++]. ¿En qué lenguaje estás trabajando? – PaperBirdMaster Aug 26 '18 at 18:04
  • Es C++, incluso uso devc++ para realizarlo – josuegarc Aug 27 '18 at 23:48
  • Créeme, el código que has escrito es C. Da igual el IDE que uses, ese código es y será C usando Borland-C o usando dev-C++. – PaperBirdMaster Aug 28 '18 at 04:33
  • 1
    Lo que quiere decir @Paula_plus_plus es que tu código no tiene ni una sola característica propia de C++. La inmensa mayoría del código C (no todo) puede compilar en C++, pero que compile no implica que sea C++ – eferion Aug 28 '18 at 06:42

1 Answers1

2

Has etiquetado tu pregunta como C++, así que debes cambiar todo tu código para que tu programa sea considerado escrito en ese lenguaje, ahora mismo está completamente escrito en C:

  • Las cabeceras <stdio.h> y <stdlib.h> son de C, no de C++, si realmente necesitas usarlas (que no las necesitas) debes usar los equivalentes de C++: <cstdio> y <cstdlib>. Consulta esta pregunta para saber por qué.
  • La cabecera <conio.h> ni siquera es estándar C y no existe en C++, consulta esta pregunta para saber por qué.
  • La función main debe tener un valor de retorno de tipo int y devolver un valor al final de su ejecución.
  • Las formaciones1 numA y numB están siendo declaradas con un tamaño desconocido, esto se conoce como Formación de Tamaño Variable (en inglés Variable Length Array) y no están permitidas ni en C moderno ni en C++ salvo que se usen extensiones no estándar de compilador, consulta cualquiera de estas preguntas para saber por qué.

En definitiva: tu código apenas es C, así que raramente será C++. Si pasamos tu código a C++ podría quedar así:

Propuesta.

#include <iostream>
#include <vector>
#include <algorithm>
#include <tuple>

int main() {
    using par = std::pair<int, int>;
    using vector_pares = std::vector<par>;

    vector_pares pares{};
    int cantidad = 0;

    // Entrada por teclado para la cantidad de elementos de A y B
    std::cout << "Ingrese la cantidad de elementos: ";
    std::cin >> cantidad;

    // Ingreso de los elementos de cada conjunto
    for (int indice = 0; indice < cantidad; ++indice) {
        par p;
        std::cin >> p.first;
        std::cin >> p.second;
        pares.push_back(p);
    }

    // Ordenar los pares
    std::sort(pares.begin(), pares.end(), [](const auto &a, const auto &b) {
        return std::tie(a.first, a.second) < std::tie(b.first, b.second);
    });

    // Mostrar valores
    for (const auto &p : pares)
        std::cout << '{' << p.first << ", " << p.second << "} ";

    return 0;
}

Puedes ver el código funcionando aquí.


También conocidas como arreglos o en inglés arrays.

PaperBirdMaster
  • 44,474
  • 6
  • 44
  • 82