fork download
  1. #include <stdio.h>
  2.  
  3. char grid[5][5] = {
  4. {'t', 'z', 'x', 'c', 'd'},
  5. {'a', 'h', 'n', 'z', 'x'},
  6. {'h', 'w', 'o', 'i', 'o'},
  7. {'o', 'r', 'n', 'r', 'n'},
  8. {'a', 'b', 'r', 'i', 'n'},
  9. };
  10. int n = 5;
  11. int found = 0; // flag indicating if string has been found
  12. void find(int i, int j, char *search) {
  13. if (i >= n || j >= n || i < 0 || j < 0) {
  14. return ;
  15. }
  16.  
  17. if (search[0]=='\0') {
  18. found = 1;
  19. return ;
  20. }
  21.  
  22. if (grid[i][j] == search[0]) {
  23. find (i+1, j, search+1);
  24. find (i, j+1, search+1);
  25. find (i+1, j+1, search+1);
  26. find (i-1, j, search+1);
  27. find (i, j-1, search+1);
  28. find (i-1, j-1, search+1);
  29. }
  30. }
  31.  
  32.  
  33. int main() {
  34. char s[] = {'h', 'o', 'r', 'i', 'z', 'o', 'n', '\0'}; // String to be searched
  35. for(int i =0; i<n && !found;i++)
  36. for(int j =0; j<n && !found;j++){
  37. //printf("Searching %c\n", grid[i][j]);
  38. find(i, j, s);
  39. }
  40. printf("%s\n", found ? "Found": "Not Found");
  41. return 0;
  42. }
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
Found