C 85
Secuencia ciclica Guest on 5th January 2021 11:30:58 PM
  1. #include <stdio.h>
  2. #define  TAM   5     // tamaño del array
  3.  
  4. // incremento circular
  5. void inc(int* p) { if(*p == TAM-1) *p=0; else (*p)++; }
  6.  
  7. int main(void)
  8. {
  9.    int a_base[TAM]={ 1, 6, 3, 9, 1 };    // array base
  10.    int a_test[TAM]={ 3, 9, 1, 1, 6 };    // array a comprobar
  11.  
  12.    int b=0;       // índice para el array base
  13.    int t=0;       // índice para el array test
  14.    int cnt=0;     // contador de ciclos
  15.    
  16.    // si la base ha llegado al final (está contenida)
  17.    // o si test ha llegado al final (no está contenida)
  18.    // entonces acabo el bucle
  19.    while(b<TAM && t<TAM)
  20.    {
  21.       if(a_base[b]==a_test[t]) { b++; inc(&t); }   // si son iguales incremento
  22.       else { b=0; t=++cnt; }               // si no, empiezo en siguiente ciclo
  23.    }
  24.  
  25.    // si la base llegó al final entonces si está contenida
  26.    printf("El array base %sestá en el array comprobado\n", b==TAM ? "" : "no ");
  27.  
  28.    return 0;
  29. }
  30.  
  31. /*  mark  */

Text Paste is for source code and general debugging text.

Login or Register to edit, delete and keep track of your pastes and more.

Raw Paste

Login or Register to edit or fork this paste. It's free.