Aide pour un programme en C " carrée magique&

dragonzeuss Messages postés 1 Statut Membre -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -
j' ai des difflicultés a faire un programme en C qui vérifie si un carrée est magique ou non
si quelqu un peut maidez sa serai gentil
merci

1 réponse

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 943
     
    /**
    * \brief teste si un carre est magique
    * \param carre Le carre a tester (tableau de tableau d'entier)
    * \param dim la taille des tableaux (ie nb de ligne et de colonne)
    * \return 1 si magique 0 sinon
    */
    int est_magique(int ** carre, int dim){
       unsigned int i,j,ref,s=0;
       //Somme verticale colonne gauche
       for(i=0;i<dim;++i) ref+=carre[i][0];
       for(j=1;j<dim;++j){
           s=0;
           //Sommes verticales des autres colonnes
           for(i=0;i<dim;++i)  s+=carre[i][j];
            if (s!=ref) return 0; //<-- pas magique
       }
    
       //Diagonale descendante
       s=0;
       for(i=0;i<dim;++i) s+=carre[i][i];
       if (s!=ref) return 0;
    
      //Diagonale montante
       s=0;
       for(i=0;i<dim;++i) s+=carre[dim-i][i];
       if (s!=ref) return 0;
    
      //Somme horizontales
       for(j=0;j<dim;++j){
           s=0;
           for(i=0;i<dim;++i)  s+=carre[j][i];
            if (s!=ref) return 0;
       }
        return 1;//<-- carre magique
    }

    ou truc dans le genre
    0