Advertisement
Josif_tepe

Untitled

Jun 13th, 2021
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.88 KB | None | 0 0
  1.  
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #include <ctype.h>
  6. /*
  7. Четиринасочник претставува матрица во која се испишани зборови хоризонтално и
  8. вертикално,одлево-надесно и оддесно-налево.Притоа секоја елемент од матрицата
  9. претставува буква од англиската азбука.
  10. пример скриени букви : HAIR ,OLE(прецртани),FISH,TOE(подвлечени)
  11.  
  12. Во датотеката input.txt е сместена квадратна матрица од знаци(3<=n<=50).
  13. Во првиот ред е ддефиниран првиот број на редицини(колони)на матрицата и
  14.  во секој преостанат ред е внесен еден ред од матрицата(види пример).
  15. По читањето на матрицата,од стандарден влез се внесува збор составен од максимум 10 букви.
  16.  
  17. Ваша задача е да определите дали тој збор се наоѓа во четиринасочникот
  18. (хоризонтално или вертикално,одлево-надесно или оддесно-налево).Потребно е
  19. да се испечати локацијата(ред,колона) на првата и последната буква од зборот.
  20. Доколку зборот повеќепати се наоѓа во четиринасочникот,треба да се испечати првото
  21. појваување,гледано елемент по елемент како што се чита матрицата.
  22. Доколку не се пронајде зборот , тогаш се печати Not Found.
  23. */
  24. int main()
  25. {
  26.     FILE *p=fopen("output.txt" , "r");
  27.     int n;
  28.     fscanf(p,"%d",&n);
  29.     int i,j;
  30.     int k;
  31.     int temp;
  32.     char inm[101][101];
  33.     char matrica[n][n];
  34. //    printf("%d\n", n);
  35.     fgets(inm[0], 3, p);
  36.     for(i=0;i<n;i++)
  37.     {
  38.         fgets(inm[i], 100, p);
  39.         k = 0;
  40. //        printf("%s\n", inm[i]);
  41.         for( j = 0; j < strlen(inm[i]); j++) {
  42.            
  43.              if(isalpha(inm[i][j])){
  44.                 matrica[i][k] = inm[i][j];
  45.                 k++;
  46.             }
  47.         }
  48.     }
  49.    
  50.     char zbor[11];
  51.     fscanf(p,"%s",zbor);
  52.  
  53.     int dolzina=strlen(zbor);
  54.  
  55.     for(i=0;i<n;i++)
  56.     {
  57.         for(j=0;j<n;j++)
  58.         {
  59.             if(zbor[0]==matrica[i][j])
  60.             {
  61.                 temp=0;
  62.                 for(k=j;k<n;k++)
  63.                 {
  64.                     if(matrica[i][k]==zbor[temp] && temp<dolzina)
  65.                     {
  66.                         temp+=1;
  67.                     }
  68.                     else{
  69.                         break;
  70.                     }
  71.                 }
  72.                 if(temp==dolzina)
  73.                 {
  74.                     printf("DESNO\n");
  75.  
  76.                     printf("%d %d\n",i,j);
  77.                     printf("%d %d\n", i,k - 1);
  78.  
  79.                     return 0;
  80.                 }
  81.                 temp=0;
  82.  
  83.                 for(k=j;k>=0;k--)
  84.                 {
  85.                     if(matrica[i][k]==zbor[temp] && temp<dolzina)
  86.                     {
  87.                         temp+=1;
  88.                     }
  89.                     else{
  90.                         break;
  91.                     }
  92.  
  93.                 }
  94.                 if(temp==dolzina)
  95.                 {
  96.                     printf("LEVO\n");
  97.  
  98.                     printf("%d %d\n", i ,j);
  99.                     printf("%d %d\n",i,k - 1);
  100.  
  101.                     return 0;
  102.                 }
  103.  
  104.             }
  105.                 temp=0;
  106.                 for(k=i;k<n;k++)
  107.                 {
  108.                     if(matrica[k][j]==zbor[temp] && temp<dolzina)
  109.                     {
  110.                         temp+=1;
  111.                     }
  112.                     else{
  113.                         break;
  114.                     }
  115.                 }
  116.                 if(temp==dolzina){
  117.                     printf("DOLE\n");
  118.  
  119.                 printf("%d %d\n",i,j);
  120.                 printf("%d %d\n",k - 1,j);
  121.                 return 0;
  122.                 }
  123.  
  124.                 temp=0;
  125.                 for(k=i;k>=0;k--)
  126.                 {
  127.                     if(matrica[k][j]==zbor[temp] && temp<dolzina)
  128.                     {
  129.                         temp+=1;
  130.                     }
  131.                     else{
  132.                         break;
  133.                     }
  134.                 }
  135.                 if(temp==dolzina)
  136.                 {
  137.                     printf("GORE\n");
  138.                     printf("%d %d\n",i,j);
  139.                     printf("%d %d\n",k - 1,j);
  140.  
  141.                     return 0;
  142.                 }
  143.         }
  144.  
  145.  
  146.     }
  147.     printf("Not Found\n");
  148.     fclose(p);
  149.     return 0;
  150. }
  151.  
  152.  
  153.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement