[ Foro de C++ ]

Ordenamiento de datos

17-Jun-2020 04:33
Invitado (Aficionado)
0 Respuestas

Hola buen dia, como puedo hacer para ordenar los datos de mi arreglo? es un trabajo de escuela y es lo único que me falta

#include <iostream>
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <conio.h>
using namespace std;

//declaracion de la funciones


void AlmacenaDatos();
void ImprimeDatos();
void OrdenaDatos();
void BuscaDatos();
void ModificaDatos();
void EliminaDatos();
int MenuOperaciones();

//declaracion global del arreglo
int A[100]; //declaracion del arreglo con capacidad para 100 elementos
int N=0;
//implemnetacion de la funcion del menu de operaciones
int MenuOperaciones()
{ int Opc=0;
 do{ system("cls");
   printf("M E N U   P R I N C I P A L\n");
   printf("1.- Llenar el arreglo de datos \n");
   printf("2.- Listar los datos \n");
   printf("3.- Ordenar la lista \n");
   printf("4.- Buscar un elem en la lista \n");
   printf("5.- Eliminar un elem en la lista \n");
   printf("6.- Modificar un elem en la lista \n");
   printf("7.- Finalizar\n");
   printf("Digite una Opcion "); scanf("%d",&Opc);
   switch(Opc)
   {
    case 1: { printf("Para cuantos elemetos ? ");
     scanf("%d",&N); //leer el nuero de datos a utilizar
    if(N<100) //si ¿n¿ es meor al espacio disponible, se invoca el llenado de datos
    AlmacenaDatos();
 else   //en caso contrario  
   printf("Espacio insuficiente.."); //imprime advertencia
getch();    //una lectura sin eco
break;
   }
case 2: { ImprimeDatos(); getch(); break;   }
case 3: { OrdenaDatos(); getch(); break;   }
case 4: { BuscaDatos(); getch(); break;   }
case 5: { EliminaDatos(); getch(); break;   }
case 6: { ModificaDatos(); getch(); break;   }
case 7: printf("Hasta la vista..."); getch(); break;

default: printf("Opcion invalida..."); getch(); break;    
     }
  } while(Opc != 7);
  return 0;
}


//funciones sin paso de argumentos y sin retornos de datos
void AlmacenaDatos()
{int i=0;
 srand(time(NULL));
 for(i=1; i<=N; i++)
   { A[i] = 1 + rand() % (101 - 1 );
}
  printf("Lista almacenada...");
}

//funcion para enlistar los elementos almacenados en la lisa
void ImprimeDatos()
{ int i=0;
if(N != 0)  //si 'N' es diferente de 0, es porque hay datos en la lista
{ for (i=1; i<=N; i++)
 //inicia un ciclo con el indice 'i' desde 1 hasta N, donde 'i' incremente de 1 en 1
 printf("Los elementos d ela lista son: %d \n",A[i]);

}
else printf("No hay datos en la lisa...");
}
//funcion de busqueda de un elem en la lista
void BuscaDatos()
{ int i=1, valor=0;
 bool Encontrado = false;
 if(N != 0) //si 'N' es diferente de 0, es porque hay datos en la lista
 { printf("Digite el elemn a buscar ? "); scanf("%d",&valor);  
     while(i<=N && Encontrado == false)
 {
      if(valor == A[i])
 {Encontrado = true;
  printf("El %d fue localizado en la %da. posicion",valor,i);
 }
i++;  
 }
 if(Encontrado == false) printf("El elem no existe...");
 }
 else printf("No hay datos en la lisa...");
 
}


//complemente las demas funciones

void OrdenaDatos()
{

}

void ModificaDatos()
{ int i=1, valor=0;
 bool Modificado = false;
 printf("Digite el dato a modificar :"); scanf("%d",&valor);
 while(i<=N && Modificado == false)
 { if(valor == A[i])
  {printf("El dato se localizo en la %da. Posicion\n",i);
  printf("Digite el nuevo valor : "); scanf("%d",&A[i]);
  Modificado = true;
 }
 else    i++;
}
if(Modificado == false) printf("El elemento no existe...");
}

void EliminaDatos()
{ int i=1 , valor=0;
 bool Eliminado = false;
 printf("Digite el dato a Eliminar : "); scanf("%d",&valor);
 while(i<=N && Eliminado == false)
 {
  if(valor == A[i])
  {printf("El dato se localizo en la %da. Posicion y fue eliminado",i);
  A[i]=0;
  Eliminado = true;
 }
 else i++;
 }
 if(Eliminado == false) printf("El elemento no existe...");
}


//funcion principal
int main() { MenuOperaciones(); return 0;   }




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)