Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <ctype.h>
- /*
- Четиринасочник претставува матрица во која се испишани зборови хоризонтално и
- вертикално,одлево-надесно и оддесно-налево.Притоа секоја елемент од матрицата
- претставува буква од англиската азбука.
- пример скриени букви : HAIR ,OLE(прецртани),FISH,TOE(подвлечени)
- Во датотеката input.txt е сместена квадратна матрица од знаци(3<=n<=50).
- Во првиот ред е ддефиниран првиот број на редицини(колони)на матрицата и
- во секој преостанат ред е внесен еден ред од матрицата(види пример).
- По читањето на матрицата,од стандарден влез се внесува збор составен од максимум 10 букви.
- Ваша задача е да определите дали тој збор се наоѓа во четиринасочникот
- (хоризонтално или вертикално,одлево-надесно или оддесно-налево).Потребно е
- да се испечати локацијата(ред,колона) на првата и последната буква од зборот.
- Доколку зборот повеќепати се наоѓа во четиринасочникот,треба да се испечати првото
- појваување,гледано елемент по елемент како што се чита матрицата.
- Доколку не се пронајде зборот , тогаш се печати Not Found.
- */
- int main()
- {
- FILE *p=fopen("output.txt" , "r");
- int n;
- fscanf(p,"%d",&n);
- int i,j;
- int k;
- int temp;
- char inm[101][101];
- char matrica[n][n];
- // printf("%d\n", n);
- fgets(inm[0], 3, p);
- for(i=0;i<n;i++)
- {
- fgets(inm[i], 100, p);
- k = 0;
- // printf("%s\n", inm[i]);
- for( j = 0; j < strlen(inm[i]); j++) {
- if(isalpha(inm[i][j])){
- matrica[i][k] = inm[i][j];
- k++;
- }
- }
- }
- char zbor[11];
- fscanf(p,"%s",zbor);
- int dolzina=strlen(zbor);
- for(i=0;i<n;i++)
- {
- for(j=0;j<n;j++)
- {
- if(zbor[0]==matrica[i][j])
- {
- temp=0;
- for(k=j;k<n;k++)
- {
- if(matrica[i][k]==zbor[temp] && temp<dolzina)
- {
- temp+=1;
- }
- else{
- break;
- }
- }
- if(temp==dolzina)
- {
- printf("DESNO\n");
- printf("%d %d\n",i,j);
- printf("%d %d\n", i,k - 1);
- return 0;
- }
- temp=0;
- for(k=j;k>=0;k--)
- {
- if(matrica[i][k]==zbor[temp] && temp<dolzina)
- {
- temp+=1;
- }
- else{
- break;
- }
- }
- if(temp==dolzina)
- {
- printf("LEVO\n");
- printf("%d %d\n", i ,j);
- printf("%d %d\n",i,k - 1);
- return 0;
- }
- }
- temp=0;
- for(k=i;k<n;k++)
- {
- if(matrica[k][j]==zbor[temp] && temp<dolzina)
- {
- temp+=1;
- }
- else{
- break;
- }
- }
- if(temp==dolzina){
- printf("DOLE\n");
- printf("%d %d\n",i,j);
- printf("%d %d\n",k - 1,j);
- return 0;
- }
- temp=0;
- for(k=i;k>=0;k--)
- {
- if(matrica[k][j]==zbor[temp] && temp<dolzina)
- {
- temp+=1;
- }
- else{
- break;
- }
- }
- if(temp==dolzina)
- {
- printf("GORE\n");
- printf("%d %d\n",i,j);
- printf("%d %d\n",k - 1,j);
- return 0;
- }
- }
- }
- printf("Not Found\n");
- fclose(p);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement