Колко пъти първия масив се повтаря във втория**

Да се въведе масив от M елемента и после друг от N елемента. Да се отпечата колко пъти първия масив се повтаря във втория.

По желание***: Да се отпечатат всички части от първия масив, които се срещат поне веднъж във втория и колко пъти се повтарят.

Публикувано в 11а, 11в с етикети . Постоянна връзка.

4 Responses to Колко пъти първия масив се повтаря във втория**

  1. dreanor каза:
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        int n,m;
        cout<<"Wuwedete broi elementi za masiwite ";
        cin>>n>>m;
        int masiv1[n],masiv2[m];
        cout<<"Wuwedete "<<n<<" elementa za purwi masiv: ";
        for (int i=0,x;i<n;i++)
        {
            cin>>x;
            masiv1[i]=x;
        }
        cout<<"Wuwedete "<<m<<" elementa za wtori masiv: ";
        for (int i=0,x;i<m;i++)
        {
            cin>>x;
            masiv2[i]=x;
        }
        for (int i=0,br=0;i<n;i++)
        {
            for (int j=0;j<m;j++)
                if (masiv1[i]==masiv2[j]) br++;
                
            if (br!=0)
              cout<<i+1<<". "<<masiv1[i]<<" se sreshta "<<br<<" puti\n";
            br=0;
        } 
                
            
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    

    Моята интерпретация на условието по желание. Не съм сигурен дали това се е имало предвид в задачата.

    • Данаил каза:

      Не точно това се има в предвид – ти си направил колко пъти всяка стойност от първия масив се съдържа във втория. А идеята е колко пъти поредицата от стойности от първия масив се съдържа (в този ред) и във втория масив.

      Но решението е интересно. Само няма нужда при въвеждането на масивите първо да въвеждаш в x, а после да присвояваш на елемента от масива.

  2. Gadget каза:
     
    int arr[100],brr[100],M,N,i,s=0,br=0;
        
        cout << "Vavedete M elementa: ";
        cin >>  M ;
        
        for(int i=0 ; i<M ; i++){
            cout << "Vuvedete chislo: ";
            cin >> arr[i] ;
        }
        
        cout << "Vavedete N elementa: ";
        cin >>  N ;
        
        for(int i=0 ; i<N ; i++){
            cout << "Vuvedete chislo: ";
            cin >> brr[i] ;
        }
        
        //Kolko puti se namira purviq masiv vuv vtoriq
        for(int j=0 ;  j<N ; j++){            
                        
           if(arr[0]==brr[j]){
                              
              for(int i=0; i<M ;i++){
                   if(arr[i]==brr[j+i])
                     s++;
                   }
                                  
           }
           else
             i=0; 
              
                
                
          if(s==M){
             br++;
             s=0;
          }
          else
            s=0;      
                
            
        }
            
         cout << "Purviq masiv se povtarq: " << br << " puti vuv vtoriq!" << endl ;
     
    • Данаил каза:

      Ники, верни са ти разсъжденията, но ненужно усложнени. Ето ти малко съкратен и променен вариант на твойта програма:

          int arr[100],brr[100],M,N,i,s=0,br=0;
           
          cout << "Vavedezdane na po-kasia masiv:\n";
          cout << "Vavedete M: ";
          cin >>  M ;
          cout << "Vuvedete "<<M<< elementa": ";
          for(int i=0 ; i<M ; i++)
              cin >> arr[i] ;
           
          cout << "Vavedezdane na po-dalgia masiv:\n";
          cout << "Vavedete N: ";
          cin >>  N ;
          cout << "Vuvedete "<<N<< elementa": ";
          for(int i=0 ; i<N ; i++)
              cin >> brr[i] ;
           
          // проверяваме колко пъти първият масив се среща във вторият
          for(int j=0 ;  j<(N-M+1); j++){           
            	// проверяваме дали дадените елементи се срещат в масива           
              for(int i=0; i<M ;i++)
              	if(arr[i]==brr[j+i])
                	s++;
              // ако сме открили целия масив
            	if(s==M)
              	 br++;
              // започваме отначало
              s=0;
          }
               
           cout << "Purviq masiv se povtarq: " << br << " puti vuv vtoriq!" << endl ;
      	return 0;
      

Вашият коментар