NeroReflex

Esercizio_1_22_3_2016

May 9th, 2016
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.17 KB | None | 0 0
  1. #include<iostream>
  2. #include<fstream>
  3. using namespace std;
  4.  
  5. int S(int* X, int a);
  6.  
  7. main()
  8. {
  9.   //ifstream IN("input");
  10.   //ofstream OUT("output");
  11.   //if(IN && OUT)
  12.   {
  13.    int X[100];
  14.    cin>>X[0];
  15.    for(int i=1; i<100 && X[i-1]!=-2; i++)
  16.    {cin>>X[i];}
  17.    
  18.     int a;
  19.     cin>>a;
  20.     int b=S(X,a); // funzione da fare
  21.     if(b==-2)
  22.      cout<<"sottosequenza "<<a<<" non presente"<<endl;
  23.     else
  24.      cout<<"inizio sottosequenza "<<a<<" indice="<<b<<endl;
  25.  
  26.  
  27.    cout<<"end"<<endl;
  28.    //IN.close(); OUT.close();
  29.   }
  30.  // else
  31.  //  cout<<"errore con i files";
  32.  }
  33.  
  34. struct sottosequenza {
  35.     int inizio;
  36.     int indice;
  37. };
  38.  
  39. int S(int* X, int a) {
  40.     sottosequenza sottosequenza_attuale;
  41.     sottosequenza_attuale.inizio=0;
  42.     sottosequenza_attuale.indice=0;
  43.    
  44.     if (X[0] == -2) return -2;
  45.    
  46.     for (int i = 0; (X[i] != -2) && (sottosequenza_attuale.indice < a); i++) {
  47.         if ((X[i] == -1) && (X[i+1] != -2)) {
  48.             sottosequenza_attuale.indice++;
  49.             sottosequenza_attuale.inizio=i+1;
  50.         }
  51.     }
  52.    
  53.     if (sottosequenza_attuale.indice == a)
  54.     {    return sottosequenza_attuale.inizio;    }
  55.     return -2;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment