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 :

Triangulations d'un polygone convexe


Sujet :

C

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 8
    Par défaut Triangulations d'un polygone convexe
    Bonjour futur(e) sauveur ,
    je suis un étudiant et je dois faire un projet en langage C. Ceci doit, donner en sortie, les triangulations d'un polygone convexe. Par exemple, si, en entrée, on donne un hexagone ABCDEF , le programme doit renvoyer toutes les triangulations comme suit:
    AC AD AE , BD BE BF, CE CF CA, DF DA DB, EA EB EC, FB FC FD.

    la solution , la plus simple selon moi, serait de relier tous les sommets qui ne sont pas adjacents.

    J'ai fait ce bout de programme. l'idée principale est de prendre le mot et le concaténer à lui même par ex, ABCDEFABCDEF. Ensuite de copier tout dans un tableau en entier par le code ASCII pour les manier.

    Résultat:

    il marche jusqu'à l'avant-dernier caractère du mot initial. Je crois qu'il y a un problème d'allocation de mémoire vu que je passe de char en int.

    Merci de me corriger.

    Au plaisir de lire vos commentaires.

    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
    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
    #include <stdio.h>
    #include<string.h>
    #include<stdlib.h>
     
    int main()
    {
    char mot[50]; // un tableau d'au plus 50 caractères.
    char mot2[25];
    int L;
    int tab[2*L];
     
    printf("Donner un mot\n");
    scanf("%s",mot);
     
    L=strlen(mot);
     
    strcpy(mot2,mot); // dupliquer le mot et concaténer les deux copies 
    strcat(mot,mot2);
     
    printf("%s\n",mot);
     
     
    for (int i=0;i<=2*L-1;i++){  // l'idée d'utilisation du tableau en entier avec les codes ASCII des caractères est la facilité de manipuler 
    	tab [i]= mot[i];         //ce type de tableau par rapport à celui de caractères.
    }
     
    for (int i=0;i<=2*L-1;i++){ // pour juste voir si le tableau en entier contient les codes ASCII de caractères
       printf("%d\t",tab [i]); 
    }
     
     
    for (int i=0;i<=L-1;i++){
    int N=i+2;  // la première itération commence à deux rangs plus loin que le nombre pointé par i.
    int M= L-2+i;  // la dernière dépend de la longueur du mot donné et de la valeur de i.
    for(int j=N; j<=M;j++){
    printf ("\n");
    printf ("%c", tab [i]); // forcer le tableau à afficher le résultat en caractères.
    printf ("%c", tab[j]);
    printf ("\n");
          }
    }
     
        return 0;
    }
    Fichiers attachés Fichiers attachés
    • Type de fichier : c new.c (1,1 Ko, 67 affichages)

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

Discussions similaires

  1. Débutant avec R : Besoin de votre aide
    Par ragheb_dev dans le forum R
    Réponses: 6
    Dernier message: 21/09/2016, 12h05
  2. besoin de votre aide débutante en openerp
    Par html.php dans le forum Odoo (ex-OpenERP)
    Réponses: 0
    Dernier message: 27/11/2012, 00h13
  3. J'ai besoin de votre aide pour une requête
    Par ovdz dans le forum Langage SQL
    Réponses: 6
    Dernier message: 20/05/2005, 11h42

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