Informática, pregunta formulada por Adrian86I, hace 1 mes

Crear tres arreglos nota01, nota02 y nota 03, el primer arreglo se ingresan

notas de manera ascendente y el segundo de manera descendente, y el tercer

arreglo se ingresan las notas del arreglo NOTA 02 pero que no esten en

nota01.
en c++
Una ayuda urgente en esta porfa.

Respuestas a la pregunta

Contestado por bstarkhell
2

Respuesta:

#include <iostream>

using namespace std;

int main()

{

   int nota01[10], nota02[10], nota03[10];

   int valor, aux, pos, pos_nota03;

   bool existe;

   

   //Entrada de datos de nota01

   cout<<"Entrada de datos de nota01\n";

   for (int i = 0; i < 10; i++){

       cin>>nota01[i];

   }

   

   //Ordenando nota01 de forma ascendente

   for (int i = 0; i < 9; i++){

       valor = nota01[i];

       pos = i;

       for (int j = i + 1; j < 10; j++){

           if (nota01[j] < valor){

               valor = nota01[j];

               pos = j;

           }

       }

       aux = nota01[i];

       nota01[i] = valor;

       nota01[pos] = aux;

   }

   

   cout<<"\n**********************\n";

   

   //Entrada de datos de nota02

   cout<<"Entrada de datos de nota02\n";

   for (int i = 0; i < 10; i++){

       cin>>nota02[i];

   }

   //Ordenando nota02 de forma descendente

   for (int i = 0; i < 9; i++){

       valor = nota02[i];

       pos = i;

       for (int j = i + 1; j < 10; j++){

           if (nota02[j] > valor){

               valor = nota02[j];

               pos = j;

           }

       }

       aux = nota02[i];

       nota02[i] = valor;

       nota02[pos] = aux;

   }

   

   //Llenando nota03

   pos_nota03 = -1;

   for (int i = 0; i < 10; i++){

       existe = false;

       for (int j = 0; j < 10; j++){

           if (nota02[i] == nota01[j]){

               existe = true;

           }

       }

       if (!existe){

           pos_nota03++;

           nota03[pos_nota03] = nota02[i];

       }

   }

   

   cout<<"\n**********************\n";

   

   //Mostrando en consola los valores ordenados de nota01

   cout<<"Nota01 en forma ascendente\n";

   for (int i = 0; i < 10; i++){

       cout<<nota01[i]<<"; ";

   }

   

   cout<<"\n**********************\n";

   

   //Mostrando en consola los valores ordenados de nota02

   cout<<"Nota02 en forma descendente\n";

   for (int i = 0; i < 10; i++){

       cout<<nota02[i]<<"; ";

   }

   

   cout<<"\n**********************\n";

   

   //Mostrando en consola los valores de nota03

   cout<<"Nota03\n";

   if (pos_nota03 < 0){

       cout<<"No hay valores en nota03\n";

   }else{

       for (int i = 0; i < pos_nota03 + 1; i++){

           cout<<nota03[i]<<"; ";

       }

   }

   

   return 0;

}

Explicación:

Sólo espero que se haya copiado bien el código. Quiero aclarar algunas cosas:

1) No especifica el tamaño de los arreglos, así que asumí que eran de 10. En caso de que sea de otro tamaño, sólo habrá que cambiar eso. El caso más tedioso es si se tiene que ingresar el tamaño de los arreglos. Ahí se tendría que poner esa entrada antes del ingreso de datos para los arreglos.

2) Dice que se ingresan notas, pero no sé de qué parte del mundo eres o cómo trabaja el lugar donde estudias, así que no tengo idea de qué valores pueden tomar las notas. En otras palabras, tal y como he escrito el código, se están aceptando notas que pueden ser -20 o incluso 1000 XD Sé que puede parecer de "sentido común", pero no es realmente así y mucho menos si esperas ayuda de gente random en internet. Es bueno especificar esas cosas. Si se debe restringir los valores de las notas, entonces se debe hacer una validación al momento de ingresar los datos de los arreglos.

3) He puesto comentarios indicando qué hace cada parte del código. No me he puesto a detallar cómo lo hace, ya que sólo puse los comentarios como guía. De esta forma, si necesitas agregar algo de lo que he mencionado antes o hacer cualquier otro cambio, sabrás dónde hacerlo sin alterar la lógica del código.

Espero haber podido ayudar en algo. Suerte XD Ah y los "cout<<"\n**********************\n";" sólo son para que la salida de la consola se vea ordenada, nada más.

Otras preguntas