Advertisement
Miketo_prog

Vectores dinamicos

May 11th, 2020 (edited)
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.65 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <time.h>
  3. #include<iostream>
  4. using namespace std;
  5.  
  6. int main(){
  7.     int datos, mayor=0, limSup=100;
  8.     int contVeces=0, unaPos;
  9.     int *vectPrinc;
  10.     int vectRep[limSup];
  11.     int *vectPos;
  12.     srand(time(NULL));
  13.    
  14.     cout<<"Cuantos datos quieres? ";
  15.     cin>>datos;
  16.    
  17.     vectPrinc=(int *)malloc(datos*sizeof(int));
  18.     vectPos=(int *)malloc(datos*sizeof(int));
  19.    
  20.     //1. Llena de aleatorios el vector principal
  21.     for(int i=0; i<datos; i++)
  22.         vectPrinc[i]=rand() % limSup;
  23.    
  24.     //Inicializa vector a -1's
  25.     for(int i=0; i<limSup; i++)
  26.         vectRep[i]=(-1);
  27.    
  28.     for(int i=0; i<datos; i++)
  29.         vectPos[i]=(-1);
  30.    
  31.    
  32.     /*A. Almacena numero de veces que se repite un numero.*/
  33.     for(int i=0; i<datos; i++){
  34.         int temp=vectPrinc[i];
  35.         if(vectRep[temp]==(-1))
  36.             vectRep[temp]=1;
  37.         else
  38.             (vectRep[temp])++;
  39.     }
  40.    
  41.    
  42.     /*B.
  43.     Buscamos el mayor en el vector contador de numeros repetidos*/
  44.     for(int i=0; i<limSup; i++)
  45.         if(mayor<vectRep[i])
  46.             mayor=vectRep[i];
  47.    
  48.     /*Buscamos cuantas veces se repite el mayor*/
  49.     for(int i=0; i<limSup; i++){
  50.         int temp=vectRep[i];
  51.         if(mayor==temp){
  52.             contVeces++;
  53.             unaPos=i;
  54.         }
  55.     }
  56.    
  57.     /*Si hay mas de dos repetidos, reseteamos*/
  58.     if(contVeces!=1)
  59.         unaPos=(-1);
  60.    
  61.    
  62.     /*C.Determinar secuencias ascendentes*/
  63.    
  64.     vectPos[0]=0;
  65.        
  66.     for(int i=0, j=0; i<datos-1; i++){
  67.         int nActual=vectPrinc[i];
  68.         int nSig=vectPrinc[i+1];
  69.         if(nActual<nSig){
  70.             //Vacio
  71.         }
  72.         else{
  73.             j++;
  74.             vectPos[j]=i+1;
  75.         }
  76.     }
  77.    
  78.     cout<<"\n\n\n";
  79.    
  80.     cout<<"Los DATOS son ALEATORIOS entre 0 y "<<limSup<<".";
  81.     cout<<"\n\n\n";
  82.    
  83.     cout<<"El VECTOR PRINCIPAL a trabajar es:\n\n";
  84.    
  85.     for(int i=0; i<datos; i++)
  86.         cout<<vectPrinc[i]<<" ";
  87.     cout<<"\n\n\n";
  88.    
  89.    
  90.     cout<<"1. REPETIDOS\nCada numero se repitio:\n\n";
  91.    
  92.     /*Imprimir vector de numeros repetidos*/
  93.     for(int i=0; i<limSup; i++){
  94.         if(vectRep[i]!=-1)
  95.             cout<<"El "<<i<<" se repitio "<<vectRep[i]<<" veces.\n";
  96.     }
  97.     cout<<"\n\n\n";
  98.    
  99.    
  100.     cout<<"2. LOS MAS REPETIDOS\n\n";
  101.     cout<<"El(Los) numero(s) que mas se repite(n):\n\n";
  102.     /*Imprimimos los nums que se repitieron mas veces*/
  103.     if(contVeces==1){
  104.         cout<<"El valor que se repitio mas veces es el "<<unaPos<<" y se repitio "<<mayor<<" veces.";
  105.     }
  106.     else{
  107.         for(int i=0; i<limSup; i++){
  108.             int temp=vectRep[i];
  109.             if(mayor==temp)
  110.                 cout<<"Valor que se repitio "<<mayor<<" veces es el: "<<i<<endl;
  111.         }
  112.     }
  113.     cout<<"\n\n\n";
  114.  
  115.    
  116.     //Imprimir listas ascendentes
  117.     cout<<"3. LISTAS ASCENDENTES\n\n";
  118.     char letra='a';
  119.     cout<<"("<<letra<<") ";
  120.     for(int i=0, j=0; i<datos; i++){
  121.         cout<<vectPrinc[i];
  122.         if(vectPos[j+1]==i+1){
  123.             cout<<endl;
  124.             letra++;
  125.             cout<<"("<<letra<<") ";
  126.             j++;
  127.         }
  128.         else{
  129.             if(i==(datos-1)){
  130.                 //Nada
  131.             }
  132.             else
  133.                 cout<<", ";
  134.         }
  135.     }
  136.     cout<<"\n\n\n";
  137.    
  138.    
  139.    //Imprimir vector de posiciones
  140.     cout<<"INICIOS DE SECUENCIAS\n\n";
  141.     {
  142.         int i=0;
  143.         while(vectPos[i]!=(-1)){
  144.             cout<<vectPos[i]<<" ";
  145.             i++;
  146.         }
  147.     }
  148.     /*
  149.     for(int i=0; i; i++){
  150.         cout<<vectPos[i]<<" ";
  151.     } */
  152.     cout<<"\n\n\n";
  153.    
  154.  
  155. return 0;
  156. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement