Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <time.h>
- #include<iostream>
- using namespace std;
- int main(){
- int datos, mayor=0, limSup=100;
- int contVeces=0, unaPos;
- int *vectPrinc;
- int vectRep[limSup];
- int *vectPos;
- srand(time(NULL));
- cout<<"Cuantos datos quieres? ";
- cin>>datos;
- vectPrinc=(int *)malloc(datos*sizeof(int));
- vectPos=(int *)malloc(datos*sizeof(int));
- //1. Llena de aleatorios el vector principal
- for(int i=0; i<datos; i++)
- vectPrinc[i]=rand() % limSup;
- //Inicializa vector a -1's
- for(int i=0; i<limSup; i++)
- vectRep[i]=(-1);
- for(int i=0; i<datos; i++)
- vectPos[i]=(-1);
- /*A. Almacena numero de veces que se repite un numero.*/
- for(int i=0; i<datos; i++){
- int temp=vectPrinc[i];
- if(vectRep[temp]==(-1))
- vectRep[temp]=1;
- else
- (vectRep[temp])++;
- }
- /*B.
- Buscamos el mayor en el vector contador de numeros repetidos*/
- for(int i=0; i<limSup; i++)
- if(mayor<vectRep[i])
- mayor=vectRep[i];
- /*Buscamos cuantas veces se repite el mayor*/
- for(int i=0; i<limSup; i++){
- int temp=vectRep[i];
- if(mayor==temp){
- contVeces++;
- unaPos=i;
- }
- }
- /*Si hay mas de dos repetidos, reseteamos*/
- if(contVeces!=1)
- unaPos=(-1);
- /*C.Determinar secuencias ascendentes*/
- vectPos[0]=0;
- for(int i=0, j=0; i<datos-1; i++){
- int nActual=vectPrinc[i];
- int nSig=vectPrinc[i+1];
- if(nActual<nSig){
- //Vacio
- }
- else{
- j++;
- vectPos[j]=i+1;
- }
- }
- cout<<"\n\n\n";
- cout<<"Los DATOS son ALEATORIOS entre 0 y "<<limSup<<".";
- cout<<"\n\n\n";
- cout<<"El VECTOR PRINCIPAL a trabajar es:\n\n";
- for(int i=0; i<datos; i++)
- cout<<vectPrinc[i]<<" ";
- cout<<"\n\n\n";
- cout<<"1. REPETIDOS\nCada numero se repitio:\n\n";
- /*Imprimir vector de numeros repetidos*/
- for(int i=0; i<limSup; i++){
- if(vectRep[i]!=-1)
- cout<<"El "<<i<<" se repitio "<<vectRep[i]<<" veces.\n";
- }
- cout<<"\n\n\n";
- cout<<"2. LOS MAS REPETIDOS\n\n";
- cout<<"El(Los) numero(s) que mas se repite(n):\n\n";
- /*Imprimimos los nums que se repitieron mas veces*/
- if(contVeces==1){
- cout<<"El valor que se repitio mas veces es el "<<unaPos<<" y se repitio "<<mayor<<" veces.";
- }
- else{
- for(int i=0; i<limSup; i++){
- int temp=vectRep[i];
- if(mayor==temp)
- cout<<"Valor que se repitio "<<mayor<<" veces es el: "<<i<<endl;
- }
- }
- cout<<"\n\n\n";
- //Imprimir listas ascendentes
- cout<<"3. LISTAS ASCENDENTES\n\n";
- char letra='a';
- cout<<"("<<letra<<") ";
- for(int i=0, j=0; i<datos; i++){
- cout<<vectPrinc[i];
- if(vectPos[j+1]==i+1){
- cout<<endl;
- letra++;
- cout<<"("<<letra<<") ";
- j++;
- }
- else{
- if(i==(datos-1)){
- //Nada
- }
- else
- cout<<", ";
- }
- }
- cout<<"\n\n\n";
- //Imprimir vector de posiciones
- cout<<"INICIOS DE SECUENCIAS\n\n";
- {
- int i=0;
- while(vectPos[i]!=(-1)){
- cout<<vectPos[i]<<" ";
- i++;
- }
- }
- /*
- for(int i=0; i; i++){
- cout<<vectPos[i]<<" ";
- } */
- cout<<"\n\n\n";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement