Advertisement
Guest User

Untitled

a guest
Jan 16th, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.75 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define TAILLE 3
  4.  
  5. int magicSquareLines(int **tab2d, int n){
  6. int i,j,k;
  7. int res = 0;
  8. int sommeL = 0;
  9. int sommeC = 0;
  10. int sommeD1 = 0;
  11. int sommeD2 = 0;
  12. int resLigne = 0;
  13. int resColonne = 0;
  14.  
  15.  
  16.  
  17. for ( i = 0; i < n; i++ ) {
  18. for ( j = 0; j < n; j++) {
  19.  
  20. /* Somme des lignes */
  21. sommeL += tab2d[i][j];
  22.  
  23. /* Somme des colonnes */
  24. sommeC += tab2d[j][i];
  25.  
  26. /* Trace de la matrice */
  27. if (i == j){
  28. sommeD1 += tab2d[i][i];
  29. }
  30.  
  31. /* Diagonale de (0,n-1) à (n-1, 0) */
  32. if ( i + j == n - 1){
  33. sommeD2 += tab2d[i][j];
  34. }
  35. }
  36.  
  37. /* Ajout du résultat des lignes, res s'incrémente de 0 ou 1 */
  38. res += resLigne == sommeL;
  39. resLigne = sommeL;
  40. sommeL = 0;
  41.  
  42. /* Ajout du résultat des colonnes, res s'incrémente de 0 ou 1 */
  43. res += resColonne == sommeC;
  44. resColonne = sommeC;
  45. sommeC = 0;
  46. }
  47. /* Ajout du résultat des diagonales, res s'incrémente de 0 ou 2 */
  48.  
  49. res += 2 * (sommeD1 == sommeD2);
  50. /* Il y a en tout n-1 colonnes, n-1 lignes + 2 diago */
  51. return res == (n - 1) * (n - 1) + 2;
  52. }
  53.  
  54.  
  55.  
  56.  
  57. int main(int argc, char const *argv[]) {
  58. /* Initialisation de la première dimension du tableau d'int*/
  59. int **tab = malloc(TAILLE * sizeof(int));
  60. int i;
  61. /* Initialisation de la deuxième dimension du tableau d'int*
  62. c'est int* car la première dimension nous donne des pointeurs d'entiers*/
  63. for ( i = 0; i < TAILLE; i++) {
  64. tab[i] = malloc(TAILLE * sizeof( int* ));
  65. }
  66.  
  67. tab[0][0] = 2;
  68. tab[0][1] = 7;
  69. tab[0][2] = 6;
  70. tab[1][0] = 9;
  71. tab[1][1] = 5;
  72. tab[1][2] = 1;
  73. tab[2][0] = 4;
  74. tab[2][1] = 3;
  75. tab[2][2] = 8;
  76.  
  77. int res = magicSquareLines(tab, TAILLE);
  78. printf("Ce carré %s magique\n", res == 1 ? "est" : "n'est pas");
  79.  
  80.  
  81. return 0;
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement