fork(1) download
  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<stdlib.h>
  4.  
  5. int Norte (char cacapalavra[][100], char palavra[], int *pc, int *pl) {
  6. int i, j, n, k;
  7. j = *pc; k = 0;
  8. n = strlen(palavra);
  9. for (i = *pl; i < i+n; i++) {
  10. if (cacapalavra [i][j] != palavra[k]) return -1;
  11. else k++;
  12. }
  13. *pl = i;
  14. return 0;
  15. }
  16.  
  17. int Sul (char cacapalavra[][100], char palavra[], int *pc, int *pl) {
  18. int i, j, n, k;
  19. j = *pc; k = 0;
  20. n = strlen(palavra);
  21.  
  22. for (i = *pl; i < i+n; i++) {
  23. if (cacapalavra [i][j] != palavra[k]) return -1;
  24. else k++;
  25. }
  26. *pl = i;
  27. return 0;
  28. }
  29.  
  30. int Leste (char cacapalavra[][100], char palavra[], int *pc, int *pl) {
  31. int i, j, n, k;
  32. i = *pl; k = 0;
  33. n = strlen(palavra);
  34.  
  35. for (j = *pc; j < j+n; j++) {
  36. if (cacapalavra [i][j] != palavra[k]) return -1;
  37. else k++;
  38. }
  39. *pc = j;
  40. return 0;
  41. }
  42.  
  43. int Oeste (char cacapalavra[][100], char palavra[], int *pc, int *pl) {
  44. int i, j, n, k;
  45. i = *pl; k = 0;
  46. n = strlen(palavra);
  47.  
  48. for (j = *pc; j < j+n; j--) {
  49. if (cacapalavra [i][j] != palavra[k]) return -1;
  50. else k++;
  51. }
  52. *pc = j;
  53. return 0;
  54. }
  55.  
  56. int Nordeste (char cacapalavra[][100], char palavra[], int *pc, int *pl) {
  57. int i, j, n, k;
  58. k = 0;
  59. n = strlen(palavra);
  60.  
  61. for (i = *pl, j = *pc; i < i+n; j++, i--) {
  62. if (cacapalavra [i][j] != palavra[k]) return -1;
  63. else k++;
  64. }
  65. *pl = i; *pc = j;
  66. return 0;
  67. }
  68.  
  69. int Noroeste (char cacapalavra[][100], char palavra[], int *pc, int *pl) {
  70. int i, j, n, k;
  71. k = 0;
  72. n = strlen(palavra);
  73.  
  74. for (i = *pl, j = *pc; i < i+n; j--, i--) {
  75. if (cacapalavra [i][j] != palavra[k]) return -1;
  76. else k++;
  77. }
  78. *pl = i; *pc = j;
  79. return 0;
  80. }
  81.  
  82. int Sudeste (char cacapalavra[][100], char palavra[], int *pc, int *pl) {
  83. int i, j, n, k;
  84. k = 0;
  85. n = strlen(palavra);
  86.  
  87. for (i = *pl, j = *pc; i < i+n; j--, i++) {
  88. if (cacapalavra [i][j] != palavra[k]) return -1;
  89. else k++;
  90. }
  91. *pl = i; *pc = j;
  92. return 0;
  93. }
  94.  
  95. int Sudoeste (char cacapalavra[][100], char palavra[], int *pc, int *pl) {
  96. int i, j, n, k;
  97. k = 0;
  98. n = strlen(palavra);
  99.  
  100. for (i = *pl, j = *pc; i < i+n; j++, i++) {
  101. if (cacapalavra [i][j] != palavra[k]) return -1;
  102. else k++;
  103. }
  104. *pl = i; *pc = j;
  105. return 0;
  106. }
  107.  
  108. int main () {
  109.  
  110. char cacapalavra [100][100];
  111. char palavra [100];
  112. int i, j, k, n, *pc = 0, *pl = 0, aux;
  113. k = 0;
  114.  
  115. scanf ("%d", &n);
  116.  
  117. for (i = 0; i < n; i++)
  118. for (j = 0; j < n; j++)
  119. scanf ("%c", &cacapalavra[i][j]);
  120.  
  121. scanf ("%s", palavra);
  122.  
  123. for (i = 0; i < n; i++) {
  124. for (j = 0; j < n; j++) {
  125. if (palavra[k] == cacapalavra[i][j]) {
  126. *pc = j; *pl = i;
  127. aux = Norte(cacapalavra, palavra, pc, pl);
  128. aux = Sul(cacapalavra, palavra, pc, pl);
  129. aux = Leste(cacapalavra, palavra, pc, pl);
  130. aux = Oeste(cacapalavra, palavra, pc, pl);
  131. aux = Nordeste(cacapalavra, palavra, pc, pl);
  132. aux = Noroeste(cacapalavra, palavra, pc, pl);
  133. aux = Sudeste(cacapalavra, palavra, pc, pl);
  134. aux = Sudoeste(cacapalavra, palavra, pc, pl);
  135. printf("%d", aux); //só para eliminar o warning que não foi usada.
  136. }
  137. }
  138. }
  139. }
Success #stdin #stdout 0s 2168KB
stdin
Standard input is empty
stdout
Standard output is empty