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 :

Trouver le plus grand angle droit et l'indice colonne et l'indice ligne du plus grand angle droit


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 44
    Points : 0
    Points
    0
    Par défaut Trouver le plus grand angle droit et l'indice colonne et l'indice ligne du plus grand angle droit
    l'exercice doit être fait avec des fonctions et on peut initialiser un tab[8][50] ou autre avec un nombre de colonnes elevé mais 8 lignes et on n'utilise pas l'entiérete du tableau donc on doit se déplacer avec les pointeurs pour regarder les i et les j et voir si y a des 1.
    un angle droit est constitué de 1 contigues et on compte pas le coin de l'angle droit constitué de 1



    10111010.........nbre max colonnes....
    01110110
    10100111
    10111111
    01010100
    10010010
    11110110
    01111101

    le plus grand angle droit(un angle droit est constitué d'une série de 1 contigues) est en gras et se trouve dans l'exemple à la 3ème colonne et à la 3ème ligne (on commence les lignes à 0 et les colonnes à 0)et on ne compte le coin qui est [ et on compte pas la première case de l'angle droit
    nombre lignes = 7
    nbre colonnes = 50 ou maxcolonnes
    tm = taille maximale mesurée
    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
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
     
    #include <stdio.h>
    #include <stdlib.h>
    #define MAX 50
    void fonctaffichtab (int *,int,int);
    void fonctencodetab(int *,int,int);
    int searchangle(int*,int,int,int*,int*);
    int main()
    {
     
     
    int tab[MAX][MAX],nl,col,compt=0,lmax,cmax;
        printf("entrez nl : ");//nbl = 8
        scanf("%d",&nl);
        printf("entrez col : ");
        scanf("%d",&col);
     
     
     
     fonctencodetab(&tab[0][0],nl,col);
     fonctaffichtab(&tab[0][0],nl,col);
     compt=searchangle(&tab[0][0],nl,col,lmax,cmax);
     printf("salut%d",compt);
     
    }
     void fonctencodetab(int *ptab,int nl,int col)
    {
        int i,j;
     
        for(i=0;i<nl;i++)
        {
            for(j=0;j<col;j++,ptab++)
            {
                printf("Encodez le tableau (%d) (%d)",i+1,j+1);
                fflush(stdin);
                scanf("%d",ptab);
     
            }
            ptab = ptab + MAX - col;
        }
     
    }
     
    void fonctaffichtab(int *ptab,int nl,int col)
    {
        int i,j;
     
        for(i=0;i<nl;i++)
        {
            for(j=0;j<col;j++,ptab++)
            {
     
                printf("%d ",*ptab);
     
            }
            ptab = ptab + MAX - col;
            printf("\n");
        }
     
    }
     
     
    int searchangle(int *ptab,int nl, int nc,int *lmax,int *cmax)
    {
    int i,j,taille,tm,cm,lm;
    taille = -1;
    for (i=0; i<(nl-taille);i++)
    {
       for(j=0;j<(nl-taille);j++)
       {
          if(*ptab == 1)// coin d'un angle
          {
            taille = 0;
            while (((*ptab+taille+1)==1)&&((*ptab+(taille+1)*(*cmax)))&&((i+taille)<nl)&&((j+taille)<nl))
            {
                 taille ++;
            }
              if (taille > tm)
              {
                 tm = taille;
                 cm = j;
                 lm = i;
               }
            }
             ptab++;
        }
        *ptab=*ptab+ *cmax-nl;
    }
       return tm;
       printf("%d",tm);
    }

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 44
    Points : 0
    Points
    0
    Par défaut ça compile mais bcp de warnings
    Citation Envoyé par exercicec Voir le message
    l'exercice doit être fait avec des fonctions et on peut initialiser un tab[8][50] ou autre avec un nombre de colonnes elevé mais 8 lignes et on n'utilise pas l'entiérete du tableau donc on doit se déplacer avec les pointeurs pour regarder les i et les j et voir si y a des 1.
    un angle droit est constitué de 1 contigues et on compte pas le coin de l'angle droit constitué de 1



    10111010.........nbre max colonnes....
    01110110
    10100111
    10111111
    01010100
    10010010
    11110110
    01111101

    le plus grand angle droit est en gras et on compte pas la première case de l'angle droit(qui est dans l'exemple à tab[3][3]) et pour rappel on commence les lignes et les colonnes à 0
    nombre lignes = 7
    nbre colonnes = 50 ou maxcolonnes
    tm = taille maximale mesurée

  3. #3
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Rien pigé. Qu'est-ce que le plus grand angle droit ? Un angle c'est droit ou ça ne l'est pas.

    Fais un petit effort, nous ne sommes pas dans ta tête. Pourtant vous y êtes déjà nombreux apparemment...

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 44
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par Matt_Houston Voir le message
    Rien pigé. Qu'est-ce que le plus grand angle droit ? Un angle c'est droit ou ça ne l'est pas.

    Fais un petit effort, nous ne sommes pas dans ta tête. Pourtant vous y êtes déjà nombreux apparemment...
    apparemment dans ta tête ç'est pas programmé qu'il faut lire l'énoncé ou je mets un angle droit est constitué de 1 contigues et peut être que tu sais pas ce que veut dire contigues mais ç'est ta tête ou y a pas grand monde ni grand chose et j'y peux rien si tu es pas assez intelligent pour comprendre ce qui est écrit dans l'énoncé et dans le code.
    Si il y avait quelque chose dans ta tête tu aurais lu l'énoncé et ç'est pas ma faute si tu sais pas lire le français ou le comprendre car contiguës veut dire une à coté de l'autre

  5. #5
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 986
    Points
    30 986
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par exercicec Voir le message
    Si il y avait quelque chose dans ta tête tu aurais lu l'énoncé et ç'est pas ma faute si tu sais pas lire le français ou le comprendre car contiguës veut dire une à coté de l'autre
    Bonjour

    Pour un allemand, tu écris remarquablement bien le français et tu sais très bien te servir du sarcasme.

    Cependant moi je sais lire le français. J'ai donc lu avec attention tout ce que tu avais écrit et je n'y ai pas trouvé une seule question. Or le but d'un forum est justement de répondre aux questions qu'on y pose !!!
    Ainsi, étant donné qu'il n'y a aucune question, je présume donc qu'il n'y a aucune réponse à donner à ce topic. Alors amuse-toi bien avec tes angles droits et bye
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 44
    Points : 0
    Points
    0
    Par défaut ça compile mais beaucoup de warnings
    Je sais pas mais vous avez l'air frustré dans ce forum et prompt à la remarque désobligeante et je suis désolé mais le forum est pour les débutants donc je comprends pas votre façon hautaine de répondre vous êtes cons ou quoi ?

    comme si ç'étais donné à tout le monde de connaître c et si je poste un code sur un forum ç'est qu'il y a un problème et que j'ai besoin d'une aide et non pas de remarques et de pertes de temps à dialoguer et faire des insinuations et tout???

    mon programme compile mais ne marche apparemment pas car il y a trop de warnings

    ça retourne une valeur mais ç'est faux et je vois pas quelles erreurs car les warnings sont compliqués

    Est ce possible de me dire ce qui va pas dans ce code ?

    merci à tous pour votre aide et bonne soirée

  7. #7
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 377
    Points : 23 659
    Points
    23 659
    Par défaut
    Bonjour et bienvenue,

    N'oublie pas que les gens ne sont pas derrière ton projet et ne peuvent pas savoir d'emblée de quoi tu parles. « Le plus grand angle droit » ne veut effectivement rien dire quand c'est hors contexte. On se doutait qu'il s'agissait de l'angle dont les deux segments de droite sécants étaient les plus longs, mais rien ne permettait de l'affirmer d'emblée. En plus, tu as eu le bon goût d'éditer ton message car tu t'es rendu compte que les branches que tu étais censé avoir mises en gras ne l'étaient pas du tout. L'incident est clos, désormais.

    Pour ton code, si on compile en mode strict et en activant tous les avertissements possibles, alors il y en a un certain nombre, mais avec la configuration GCC de base et en C99, il en reste deux :

    Avant toute chose, ajoute #include <stdio.h> juste après #include <stdlib.h>.

    angle.c: Dans la fonction ‘main’:
    angle.c:21:38: attention : passing argument 4 of ‘searchangle’ makes pointer from integer without a cast [-Wint-conversion]
      compt=searchangle(&tab[0][0],nl,col,lmax,cmax);
                                          ^
    
    angle.c:6:5: note: expected ‘int *’ but argument is of type ‘int’
     int searchangle(int*,int,int,int*,int*);
         ^
    Ta fonction attend un pointeur mais tu lui passes un entier. Si tu écris lmax tout seul, tu passes la valeur (le contenu) de ta variable à ta fonction. Si tu veux travailler par référence, alors il faut à la place lui passer l'adresse en mémoire de la variable lmax pour que ta fonction aille la chercher elle-même : &lmax.

    angle.c:21:43: attention : passing argument 5 of ‘searchangle’ makes pointer from integer without a cast [-Wint-conversion]
      compt=searchangle(&tab[0][0],nl,col,lmax,cmax);
                                               ^
    
    angle.c:6:5: note: expected ‘int *’ but argument is of type ‘int’
     int searchangle(int*,int,int,int*,int*);
         ^
    Même chose avec cmax.


    Attention : résoudre ces deux points permettra à ton compilateur de compiler sans warning mais cela ne veut pas dire que ton programme sera correct pour autant. Il y a de fortes chances pour qu'il donne de mauvais résultats, voire même qu'il plante carrément malgré l'absence de warnings si tu fais un mauvais usage de tes pointeurs.

  8. #8
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 986
    Points
    30 986
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par exercicec Voir le message
    je sais pas mais vous avez l'air frustré dans ce forum et prompt à la remarque désobligeante et je suis désolé mais le forum est pour les débutants donc je comprends pas votre façon hautaine de répondre vous êtes cons ou quoi ?
    Ben non. Tu arrives avec ton problème mais tu le poses mal, pour ça tu te fais chambrer et au lieu de comprendre que nous on n'est pas à ta place et qu'on doit essayer de se mettre dans un bain où toi tu es déjà bien installé, tu le prends de haut. Normal qu'ensuite on t'envoie chier. On en a rien a cirer de savoir quel est le plus grand angle nous et si malgré ça on décide de prendre de notre temps, faut au-moins essayer de nous faciliter l'intégration.

    Citation Envoyé par exercicec Voir le message
    comme si ç'étais donné à tout le monde de connaître c
    Ben en fait oui, c'est donné à tout le monde. Faut juste prendre un cours/tuto, le lire et faire des exercices.

    Citation Envoyé par exercicec Voir le message
    ça retourne une valeur mais ç'est faux
    Ben là c'est cash: on peut t'aider en C car on connait bien, mais on ne va pas en plus essayer de comprendre ton algo et où il foire. Eventuellement je peux moi te dire l'algo que j'aurais implémenté mais pas décortiquer le tien. Perso j'aurais écrit une fonction qui, à partir d'un "1" quelconque, compte tous les autres "1" contigus dans une direction "X" ("X" paramètre de la fonction). Puis j'aurais ensuite fait une boucle où, pour chaque "1" du tableau, j'appelle cette fonction pour la direction N et E, puis E et S, puis S et W puis W et N en mémorisant à chaque fois le nombre de "1" trouvés. Dans le style
    Code c : 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
    trouve_i=0
    trouve_j=0
    trouve_angle=0
    for i in ligne
    {
        for j in col
        {
            for k in (0, 1, 2, 3)    // Direction (N, E, S, W)
            {
                tmp=cherche_ligne(i, j, k) + cherche_ligne(i, j, (k+1) % 4)     // A chaque tour, je cherche dans la direction X et dans la direction X+1 (ou la direction 0 si X était la dernière)
                if (tmp > trouve_angle)
               {
                    trouve_i=i;
                    trouve_j=j;
                    trouve_angle=tmp;
               }
           }
        }
    }

    Citation Envoyé par exercicec Voir le message
    et je vois pas quelles erreurs car les warnings sont compliqués
    Quand on a n warnings, c'est souvent à cause du premier. Il te faut les prendre un par uns et recompiler après chaque warning corrigé. Bien souvent on a un un warning parce que le paramètre reçu par la fonction n'est pas celui qu'elle attend (char* au lieu de const char*, char* au lieu de char[], etc...)
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 44
    Points : 0
    Points
    0
    Par défaut merci pour votre aide
    J'ai essayé de faire un nouveau code le voici il a l'air plus simple mais je sais pas comment afficher les valeurs calculées dans la fonction searchangle et que j'ai mis dans le vecteur vec [3]

    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
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
     
     
    #include <stdio.h>
    #include <stdlib.h>
    #define MAX 20
    void fonctaffichtab (int *,int,int);
    void fonctencodetab(int *,int,int);
    int searchangle(int*,int*,int,int);
    int main()
    {
     
     
    int tab[8][MAX];
    int nl = 0;
    int col = 0;
    int vec[3]={0,0,0};
    int compt = 0;
        printf("entrez nl : ");//nl = 8
        scanf("%d",&nl);
        printf("entrez col : ");
        scanf("%d",&col);
     
     
     
     fonctencodetab(&tab[0][0],nl,col);
     fonctaffichtab(&tab[0][0],nl,col);
     compt = searchangle(&tab[0][0],&vec[0],nl,col);
     printf("hello%d",compt);
     
     
     return 0;
     
    }
     void fonctencodetab(int *ptab,int nl,int col)
    {
        int i,j;
     
     
        for(i=0;i<nl;i++)
        {
            for(j=0;j<col;j++,ptab++)
            {
                printf("Encodez le tableau (%d) (%d)",i,j);
                fflush(stdin);
                scanf("%d",ptab);
     
            }
            ptab = ptab + MAX - col;
        }
     
    }
     
    void fonctaffichtab(int *ptab,int nl,int col)
    {
        int i,j;
     
     
        for(i=0;i<nl;i++)
        {
            for(j=0;j<col;j++,ptab++)
            {
     
                printf("%d ",*ptab);
     
            }
            ptab = ptab + 20 - col;
            printf("\n");
        }
     
    }
     
     
    int searchangle(int *ptab,int *pvec,int nl,int col)
    {
    int i,j,taille;
    taille = -1;
    int vec[3];
    int compt = 0;
     
    for (i=0; i<nl;i++)
    {
       for(j=0;j<col;j++)
       {
          if(*ptab == 1)// coin d'un angle
          {
            taille = 0;
            while (((*ptab+taille+1)==1)&&((*ptab+taille+MAX)==1)&&((i+taille)<nl)&&((j+taille)<MAX))
            {
                 taille ++;
            }
              if (taille > vec[0])
              {
                 vec[0] = taille;
                 vec[1] = j;
                 vec[2] = i;
               }
     
               for(i=0;i<2;i++)
               {
                   printf("%d",vec[i]);
               }
     
            }
             ptab++;
        }
     
         ptab = ptab + MAX - col;
    }
       return compt;
     
    }

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 44
    Points : 0
    Points
    0
    Par défaut j'ai surement fait des erreurs dans le vec et j'arrive pas à afficher taille i et j dans le vecteur
    Citation Envoyé par exercicec Voir le message
    j'ai essayé de faire un nouveau code le voici il a l'air plus simple mais je sais pas comment afficher les valeurs calculées dans la fonction searchangle et
    que j'ai mis dans le vecteur vec [3]

    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
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
     
     
    #include <stdio.h>
    #include <stdlib.h>
    #define MAX 20
    void fonctaffichtab (int *,int,int);
    void fonctencodetab(int *,int,int);
    int searchangle(int*,int*,int,int);
    int main()
    {
     
     
    int tab[8][MAX];
    int nl = 0;
    int col = 0;
    int vec[3]={0,0,0};
    int compt = 0;
        printf("entrez nl : ");//nl = 8
        scanf("%d",&nl);
        printf("entrez col : ");
        scanf("%d",&col);
     
     
     
     fonctencodetab(&tab[0][0],nl,col);
     fonctaffichtab(&tab[0][0],nl,col);
     compt = searchangle(&tab[0][0],&vec[0],nl,col);
     printf("hello%d",compt);
     
     
     return 0;
     
    }
     void fonctencodetab(int *ptab,int nl,int col)
    {
        int i,j;
     
     
        for(i=0;i<nl;i++)
        {
            for(j=0;j<col;j++,ptab++)
            {
                printf("Encodez le tableau (%d) (%d)",i,j);
                fflush(stdin);
                scanf("%d",ptab);
     
            }
            ptab = ptab + MAX - col;
        }
     
    }
     
    void fonctaffichtab(int *ptab,int nl,int col)
    {
        int i,j;
     
     
        for(i=0;i<nl;i++)
        {
            for(j=0;j<col;j++,ptab++)
            {
     
                printf("%d ",*ptab);
     
            }
            ptab = ptab + 20 - col;
            printf("\n");
        }
     
    }
     
     
    int searchangle(int *ptab,int *pvec,int nl,int col)
    {
    int i,j,taille;
    taille = -1;
    int vec[3];
    int compt = 0;
     
    for (i=0; i<nl;i++)
    {
       for(j=0;j<col;j++)
       {
          if(*ptab == 1)// coin d'un angle
          {
            taille = 0;
            while (((*ptab+taille+1)==1)&&((*ptab+taille+MAX)==1)&&((i+taille)<nl)&&((j+taille)<MAX))
            {
                 taille ++;
            }
              if (taille > vec[0])
              {
                 vec[0] = taille;
                 vec[1] = j;
                 vec[2] = i;
               }
     
               for(i=0;i<2;i++)
               {
                   printf("%d",vec[i]);
               }
     
            }
             ptab++;
        }
     
         ptab = ptab + MAX - col;
    }
       return compt;
     
    }

    j'arrive pas à afficher le vec que j'ai initialisé à {0,0,0,} et où je mets taille(taille du plus grand angle et i ou se trouve cet angle et l'indice j où se trouve cet angle)

  11. #11
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 986
    Points
    30 986
    Billets dans le blog
    1
    Par défaut
    Pourquoi tes pointeurs sont des "int étoile" alors que ton tableau de nombres est en 2 dimensions ??? Déjà à mon avis rien que ça doit faire hurler les warnings !!!

    D'ailleurs pourquoi tu utilises des pointeurs alors que tu pourrais utiliser directement des tableaux
    Exemple

    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    int main()
    {
        int tab[10];
        fonction(tab);
    }
     
    int fonction(int tab[10])
    {
        ...
    }
    Et pareil en 2D.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 44
    Points : 0
    Points
    0
    Par défaut ç'est pour l'école
    on doit faire ça avec des fonctions et des pointeurs car ç'est l'énoncé du prof et j'ai bientôt examen en janvier

  13. #13
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 986
    Points
    30 986
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par exercicec Voir le message
    j'arrive pas à afficher le vec que j'ai initialisé à {0,0,0,} et où je mets taille(taille du plus grand angle et i ou se trouve cet angle et l'indice j où se trouve cet angle)
    Que veux-tu que je te dises ? Tu as une fonction searchangle() qui initialise une variable "compt" à 0, qui n'y touche ensuite absolument pas et qui, enfin, renvoie la valeur de cette variable "compt" c'est à dire 0. Je t'ai déjà dit qu'on n'était pas là pour vérifier tes algos !!!
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  14. #14
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 44
    Points : 0
    Points
    0
    Par défaut résolu
    Citation Envoyé par Sve@r Voir le message
    Que veux-tu que je te dises ? Tu as une fonction searchangle() qui initialise une variable "compt" à 0, qui n'y touche ensuite absolument pas et qui, enfin, renvoie la valeur de cette variable "compt" c'est à dire 0. Je t'ai déjà dit qu'on n'était pas là pour vérifier tes algos !!!
    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
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
     
    /*Chercher les angles droits d'un tableau*/
     
    #include <stdio.h>
    #include <stdlib.h>
    void encodage(int *, int );
    void affichage(int *, int );
    void calcul (int*,int*,int*,int);
     
     
    int main()
    {
        int vec[50][50],tab[50][50],c=-1,r=1,z=0;
        {
     
            while(r==1)
            {
                if(z==1)
                printf("*****************SUIVANT*********SUIVANT*****************SUIVANT***************");
                c=-1;
                while(c<0)
                {
                    printf("\n\nentrez c: ");
                    scanf("%d", &c);
                }
                printf("Encodage et Affichage 1er tableau\n");
                encodage(&vec[0][0],c);
                affichage (&vec[0][0],c);
                calcul (&vec[0][0],&vec[0][1],&vec[1][1],c);
                z=1;
     
            }
     
        }
     
     
     
        return 0;
    }
     
     
     
     
     
     
     
     
    void encodage (int *p ,int c)
    {
     
        int tab [c][c];
    int *ptab;
    int MAX = 1;
    int MIN =0;
    int j;
    int i;
    ptab = &tab[0][0];
     
       /* for(i=0;i<c;i++)
        {
            for(j=0;j<c;j++)
            {
                printf("Case %d %d : ",i,j);
                fflush(stdin);
                scanf("%d",p);
                p++;
            }
            p=p+(50-c);
        }*/
       int min=0;
        int max=1;
       srand(time(NULL));
     
        i=0;
        printf("\n");
     
        while(i<c)
        {
            j=0;
               while(j<c)
            {
               *p=(rand() % (max - min + 1)) + min;
               p++;
               j++;
     
            }
              printf("\n");
     
            p=p+(50-c);
            i++;
     
        }
     
    }
     
    void affichage (int *p ,int c)
    {
        int i=0,j=0;
     
        i=0;
        printf("\n");
     
        while(i<c)
        {
            j=0;
               while(j<c)
            {
               printf("[%d]",*p);
               p++;
               j++;
     
            }
              printf("\n");
            p=p+(50-c);
            i++;
     
        }
    }
     
     
     
    void calcul (int *p,int *dr ,int *bas,int c)
    {
        int i,j,cpt=0,taille=0,temp=0,templ,tempc;
     
        for(i=0;i<c;i++)
        {
            for(j=0;j<c;j++)
            {
                if(*p==1)
                {
                    dr=p+1;
                    bas=p+50;
                    cpt=0;
                    while(*dr==1&&*bas==1)
                    {
                        cpt++;
                        dr++;
                        bas=bas+50;
     
                    }
                    if(taille<cpt)
                    {
                        taille=cpt;
                        templ=i;
                        tempc=j;
                    }
                    p++;
                    dr=p+1;
                    bas=p+50;
                }
                else
                p++;
                dr=p+1;
                bas=p+50;
     
            }
            p=p+(50-c);
        }
        printf("\nla taille de l'angle est : %d\n",taille);
        printf("Sa position est [%d] [%d]",templ,tempc);
    }

  15. #15
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 44
    Points : 0
    Points
    0
    Par défaut résolu avec remplissage aléatoire du tableau de 0 et de 1 encodage normal du tab en commentaires
    Citation Envoyé par exercicec Voir le message
    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
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
     
    /*Chercher les angles droits d'un tableau*/
     
    #include <stdio.h>
    #include <stdlib.h>
    void encodage(int *, int );
    void affichage(int *, int );
    void calcul (int*,int*,int*,int);
     
     
    int main()
    {
        int vec[50][50],tab[50][50],c=-1,r=1,z=0;
        {
     
            while(r==1)
            {
                if(z==1)
                printf("*****************SUIVANT*********SUIVANT*****************SUIVANT***************");
                c=-1;
                while(c<0)
                {
                    printf("\n\nentrez c: ");
                    scanf("%d", &c);
                }
                printf("Encodage et Affichage 1er tableau\n");
                encodage(&vec[0][0],c);
                affichage (&vec[0][0],c);
                calcul (&vec[0][0],&vec[0][1],&vec[1][1],c);
                z=1;
     
            }
     
        }
     
     
     
        return 0;
    }
     
     
     
     
     
     
     
     
    void encodage (int *p ,int c)
    {
     
        int tab [c][c];
    int *ptab;
    int MAX = 1;
    int MIN =0;
    int j;
    int i;
    ptab = &tab[0][0];
     
       /* for(i=0;i<c;i++)
        {
            for(j=0;j<c;j++)
            {
                printf("Case %d %d : ",i,j);
                fflush(stdin);
                scanf("%d",p);
                p++;
            }
            p=p+(50-c);
        }*/
       int min=0;
        int max=1;
       srand(time(NULL));
     
        i=0;
        printf("\n");
     
        while(i<c)
        {
            j=0;
               while(j<c)
            {
               *p=(rand() % (max - min + 1)) + min;
               p++;
               j++;
     
            }
              printf("\n");
     
            p=p+(50-c);
            i++;
     
        }
     
    }
     
    void affichage (int *p ,int c)
    {
        int i=0,j=0;
     
        i=0;
        printf("\n");
     
        while(i<c)
        {
            j=0;
               while(j<c)
            {
               printf("[%d]",*p);
               p++;
               j++;
     
            }
              printf("\n");
            p=p+(50-c);
            i++;
     
        }
    }
     
     
     
    void calcul (int *p,int *dr ,int *bas,int c)
    {
        int i,j,cpt=0,taille=0,temp=0,templ,tempc;
     
        for(i=0;i<c;i++)
        {
            for(j=0;j<c;j++)
            {
                if(*p==1)
                {
                    dr=p+1;
                    bas=p+50;
                    cpt=0;
                    while(*dr==1&&*bas==1)
                    {
                        cpt++;
                        dr++;
                        bas=bas+50;
     
                    }
                    if(taille<cpt)
                    {
                        taille=cpt;
                        templ=i;
                        tempc=j;
                    }
                    p++;
                    dr=p+1;
                    bas=p+50;
                }
                else
                p++;
                dr=p+1;
                bas=p+50;
     
            }
            p=p+(50-c);
        }
        printf("\nla taille de l'angle est : %d\n",taille);
        printf("Sa position est [%d] [%d]",templ,tempc);
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 11/11/2015, 13h38
  2. Trouver la ligne la plus récente
    Par youba11 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 04/10/2009, 01h06
  3. Récupérer la ligne la plus récente
    Par DeezerD dans le forum Requêtes
    Réponses: 2
    Dernier message: 01/04/2007, 13h13
  4. Réponses: 8
    Dernier message: 26/10/2006, 11h19
  5. [SELECT sur 16 millions de lignes] délai très grand
    Par localhost dans le forum Requêtes
    Réponses: 6
    Dernier message: 22/11/2004, 17h04

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