Langage C Carré magique (Débutant)

Fermé
Salem - 8 mars 2011 à 00:17
.N Messages postés 25 Date d'inscription samedi 12 mars 2011 Statut Membre Dernière intervention 17 mars 2011 - 14 mars 2011 à 18:18
Bonjour,
En dev C++ , en langage C non pas C++
Dans un exercice , je dois faire un programme qui crée un carré magique d'ordre impair , cet ordre est donné comme une constante en haut du programme , que je pourrais modifier comme je veux pour avoir un carré plus grand , j'ai donc fait mon programme avec des actions simples , tres simples meme , sans biensur que l'utilisateur (qui sera moi , qui ne veut que voir le carré a la fin) ait a entrer qqch au clavier . Le problème , rien n'arrive quand j'execute , pourtant , je suis presque sûr de l'enchaînement logique de mon programme.
Merci de me dire où est l'erreur
#include <stdio.h>
#include <stdlib.h>
#define N 3

int main(int argc, char *argv[])
{
    int T[N][N],L,C,M;
    for(L=0;L<=N-1;L++)
    {
                       for(C=0;C<=N-1;C++)
                       {
                                          T[L][C]=0;
                       }
    }
    T[(N+1)/2][(N-1)/2]=1;
    L=(N+1)/2;
    C=(N-1)/2;
    do
    {
              if(L!=N-1 && C!=N-1)
              {
                        if(T[L+1][C+1]==0)
                        {
                                          T[L+1][C+1]=T[L][C]+1;
                                          L++;
                                          C++;
                        }
                        else
                        {
                            if(L!=N-2)
                            {
                                      T[L+2][C]=T[L][C]+1;
                                      L=L+2;
                            }
                            else
                            {
                                T[0][C]=T[L][C]+1;
                                L=0;
                            }
                        }
              }  
               if(L==N-1 && C!=N-1)
              {
                        if(T[0][C+1]==0)
                        {
                                          T[0][C+1]=T[L][C]+1;
                                          L=0;
                                          C++;
                        }
                        else
                        {
                            T[1][C]=T[L][C]+1;
                            L=1;
                        }
              }   
               if(L!=N-1 && C==N-1)
              {
                        if(T[L+1][0]==0)
                        {
                                          T[L+1][0]=T[L][C]+1;
                                          L++;
                                          C=0;
                        }
                        else
                        {
                            if(L==N-2)
                            {
                                      T[0][C]=T[L][C]+1;
                                      L=0;
                            }
                            else
                            {
                                T[L+2][C]=T[L][C]+1;
                                L=+2;
                            }
                        }
              } 
               if(L==N-1 && C==N-1)
              {
                        if(T[0][0]==0)
                        {
                                          T[0][0]=T[L][C]+1;
                                          L=0;
                                          C=0;
                        }
                        else
                        {
                           T[1][C]=T[L][C]+1;
                           L=1;
                        }
              }  
              M=0;
                 for(L=0;L<=N-1;L++)
                     {
                       for(C=0;C<=N-1;C++)
                       {
                                       if(T[L][C]==0)
                                       M++;
                       }
                     }
}while(M!=0);
 for(L=0;L<=N-1;L++)
                     {
                       for(C=0;C<=N-1;C++)
                       {
                                       printf("%d\t",T[L][C]);
                       }
                       printf("\n");
                     }
  system("PAUSE");	
  return 0;
}




7 réponses

Up svp
0