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