Advertisement
Cristina_Hustea

Untitled

Apr 14th, 2020
37
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.53 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3.  
  4. int matrice[9][9] = {
  5. {3,0,6,5,0,8,4,0,0},
  6. {5,2,0,0,0,0,0,0,0},
  7. {0,8,7,0,0,0,0,3,1},
  8. {0,0,3,0,1,0,0,8,0},
  9. {9,0,0,8,6,3,0,0,5},
  10. {0,5,0,0,9,0,6,0,0},
  11. {1,3,0,0,0,0,2,5,0},
  12. {0,0,0,0,0,0,0,7,4},
  13. {0,0,5,2,0,6,3,0,0}
  14. };
  15.  
  16. void afisare()
  17. {
  18. int i, j;
  19. for (i = 0; i < 9; i++)
  20. {
  21. for (j = 0; j < 9; j++)
  22. {
  23. printf("%d\t", matrice[i][j]);
  24. }
  25. printf("\n\n");
  26. }
  27. }
  28.  
  29. int numar(int *row, int *col)
  30. {
  31. int num = 0;
  32. int i, j;
  33. for (i = 0; i < 9; i++)
  34. {
  35. for (j = 0; j < 9; j++)
  36. {
  37.  
  38. if (matrice[i][j] == 0)
  39. {
  40. *row = i;
  41. *col = j;
  42. num = 1;
  43. return num;
  44. }
  45. }
  46. }
  47. return num;
  48. }
  49.  
  50. int verificare(int n, int r, int c)
  51. {
  52. int i, j;
  53. for (i = 0; i < 9; i++)
  54. {
  55. if (matrice[r][i] == n)
  56. return 0;
  57. }
  58. for (i = 0; i < 9; i++)
  59. {
  60. if (matrice[i][c] == n)
  61. return 0;
  62. }
  63.  
  64. int row_start = (r / 3) * 3;
  65. int col_start = (c / 3) * 3;
  66. for (i = row_start; i < row_start + 3; i++)
  67. {
  68. for (j = col_start; j < col_start + 3; j++)
  69. {
  70. if (matrice[i][j] == n)
  71. return 0;
  72. }
  73. }
  74. return 1;
  75. }
  76.  
  77. int rezolvare()
  78. {
  79. int row;
  80. int col;
  81.  
  82. if (numar(&row, &col) == 0)
  83. return 1;
  84. int n, i;
  85.  
  86. for (i = 1; i <= 9; i++)
  87. {
  88. if (verificare(i, row, col))
  89. {
  90. matrice[row][col] = i;
  91.  
  92. if (rezolvare())
  93. return 1;
  94.  
  95. matrice[row][col] = 0;
  96. }
  97. }
  98. return 0;
  99. }
  100.  
  101. int main()
  102. {
  103. if (rezolvare())
  104. afisare();
  105. else
  106. printf("Nu exista solutie\n");
  107. system("pause");
  108. return 0;
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement