IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

parcourir une matrice en zigzag !


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 105
    Par défaut parcourir une matrice en zigzag !
    bonjour
    j'ai essayer d’écrire un programme qui parcouru une matrice en zigzag

    Nom : 14805348643084_matrice.png
Affichages : 750
Taille : 7,7 Ko
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    #include<iostream>
    using namespace std;
     
    void affiche(int t[4][4])
    {
        int i,j ;
        for(i=0;i<4;i++){
            for(j=0;j<4;j++){
            cout<<t[i][j]<<"\t" ;
        }
        cout<<"\n" ;
    }
     
    }
     
     
     
    int main()
    {
     
    int croiss;
    int t[4][4]={{10,13,12,32},{1,2,6,9},{33,19,20,24},{60,64,65,69}} ;
    affiche(t);
    int i=0 ,j=3 ;
    while(i<=3&&j>=0){
            cout<<t[i][j]<<"|" ;
    if(i==0&&i==3)
    {
        if(j==0)
        {
            j++;
            i++ ;
        }
        j--;
        cout<<t[i][j]<<"|" ;
     
     
     
    }
    else
    {
    if (j == 0 || j == 3)
    		{
                if (i == 3)
    			{
                    i = i - 1;
                    j--;
    			}
                i = i + 1;
                cout<<t[i][j]<<"|" ;
    		}
    }
     
    		if (i == 0 || j == 3) { croiss = 0;}
    		if (j == 0 || i == 3)  { croiss = 1;}
     
        if (croiss==1)
    	{
            i++;
            j--;
    	}
    	else
    	{
            i--;
            j++;
    	}
     
     
    }}
    je ne sais pas ou est le probleme ?
    des idees s'ils vous plait

  2. #2
    Membre Expert Avatar de Astraya
    Homme Profil pro
    Consommateur de café
    Inscrit en
    Mai 2007
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Consommateur de café
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 048
    Par défaut
    Bonjour,
    Le plus simple dans un tel cas est d'accéder directement au index voulu avec l'operateur []

  3. #3
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Regarde les numéros des cases.
    Fais en la liste dans l'ordre de parcours.
    Cherche des propriétés, par exemple, quand tourne-t-on?

    Pour information, les déplacements en diagonales se font par pas de (-1, 1) ou (1, -1).

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut
    C'est de la pure algorithmie.
    Il suffit de se poser, et de se concentrer.

    Il est difficile de t'aider sans faire le code.

    Pour info, si ta matrice est carrée, tu n'as besoin que d'un seul indice.

Discussions similaires

  1. Parcourir une matrice
    Par Johnny P. dans le forum Débuter
    Réponses: 3
    Dernier message: 14/12/2010, 03h44
  2. [Débutant] Parcourir une matrice
    Par Ludo1919 dans le forum MATLAB
    Réponses: 15
    Dernier message: 25/08/2010, 15h02
  3. comment parcourir une matrice en cercle ?
    Par info3licen dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 09/05/2010, 18h38
  4. Linéarisation d'une matrice en zigzag
    Par scarabee10 dans le forum C
    Réponses: 7
    Dernier message: 12/06/2009, 21h50
  5. Parcourir une matrice
    Par tiouba dans le forum MATLAB
    Réponses: 9
    Dernier message: 14/03/2008, 09h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo