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 :

des bugs m'echappent


Sujet :

C

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 116
    Par défaut des bugs m'echappent
    Salut,

    Ce petit programme ne se compile pas de tout avec visual c++ alors qu'il s'exécute correctement avec codeblocks. Je n'ai pas pu corriger les bugs affichés.Pourriez vous m'aider?
    Merci d'avance.
    Voici le code
    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
     
     
    typedef int (*compfn)(const void*, const void*);
     
    struct tache
    {
        int release_date;
        int duree;
        int due_date;
        int id_tache;
    };
     
    typedef struct
    {
        int date_disponibilite;
    } machine;
     
    struct tache job[] =
    {
        { 3, 0, 4, 1 }, {5, 3, 5,2}, {1,4,12,3}, {2,7,10,4}, {4,8,11,5}
    };
    /*fonction tri par ordre croissant de sa date de fin*/
    int compare(struct tache *elem1, struct tache *elem2)
    {
        if (elem1->due_date < elem2->due_date)
            return -1;
        else if (elem1->due_date > elem2->due_date)
            return 1;
        else
            return 0;
    }
     
    void printarray(void)
    {
        int i;
     
        for (i = 0; i < 5; i++)
            printf("  %d " , job[i].id_tache);
     
    }
     
    int main(void)
    {
     
     
        float temps;
        clock_t t1, t2;
        t1 = clock();
        machine Machines[3];
        int id_machineDispo;
        int retardsTotaux = 0;
        int retards, j, k;
     
        qsort((void *) &job,5, sizeof(struct tache), (compfn)compare);
        printf("\n due_date tache par ordre croissant\n");
        printarray();
        printf("\n");
     
            for (j = 0; j < 3; j++)
        {
            Machines[j].date_disponibilite = 0;
        }
        /* pour toute les taches */
        for (k = 0; k <5 ; k++)
        {
     
            id_machineDispo = 0;
     
            /* trouver la machine disponible plus tot*/
            for (j = 0;j < 3; j++)
            {
                if (Machines[j].date_disponibilite < Machines[id_machineDispo].date_disponibilite)
     
     
                    id_machineDispo = j;
     
            }
     
               /* calculer date fin tache sur machine */
                if (k<3)
     
                Machines[id_machineDispo].date_disponibilite += job[k].duree + job[k].release_date;
     
                if(k>=3)
     
                Machines[id_machineDispo].date_disponibilite += job[k].duree;
     
                /* affichage affectation*/
                printf("\n date disponibilite  machine %d egale : %d ",id_machineDispo, Machines[id_machineDispo].date_disponibilite);
                printf("\n placer tache %d sur machine %d", job[k].id_tache, id_machineDispo);
                printf("\n");
                /* calcul retard et retards totaux */
                retards = Machines[id_machineDispo].date_disponibilite-job[k].due_date;
                printf("\n retards : %d", retards);
                printf("\n");
                if (retards > 0)
                retardsTotaux += retards;
     
     
            /* affichage retards totaux */
        printf("\n retards totaux : %d\n",retardsTotaux);
    	}
        t2 = clock();
        temps = (float)(t2-t1)/CLOCKS_PER_SEC;
        /* temps exécution application */
        printf("temps = %f\n", temps);
     
        return 0;
    }
    Les bugs :
    1>------ Début de la génération*: Projet*: code_c_EDD, Configuration*: Debug Win32 ------
    1>Compilation en cours...
    1>main.c
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(52) : error C2275: 'machine'*: utilisation non conforme de ce type comme expression
    1> c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(19)*: voir la déclaration de 'machine'
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(52) : error C2146: erreur de syntaxe*: absence de ';' avant l'identificateur 'Machines'
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(52) : error C2065: 'Machines'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(52) : error C2109: un indice requiert un type tableau ou pointeur
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(53) : error C2143: erreur de syntaxe*: absence de ';' avant 'type'
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(54) : error C2143: erreur de syntaxe*: absence de ';' avant 'type'
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(55) : error C2143: erreur de syntaxe*: absence de ';' avant 'type'
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(62) : error C2065: 'j'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(62) : error C2065: 'j'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(62) : error C2065: 'j'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(64) : error C2065: 'Machines'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(64) : error C2065: 'j'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(64) : error C2109: un indice requiert un type tableau ou pointeur
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(67) : error C2065: 'k'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(67) : error C2065: 'k'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(67) : error C2065: 'k'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(70) : error C2065: 'id_machineDispo'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(73) : error C2065: 'j'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(73) : error C2065: 'j'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(73) : error C2065: 'j'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(75) : error C2065: 'Machines'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(75) : error C2065: 'j'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(75) : error C2109: un indice requiert un type tableau ou pointeur
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(75) : error C2065: 'Machines'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(75) : error C2065: 'id_machineDispo'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(75) : error C2109: un indice requiert un type tableau ou pointeur
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(78) : error C2065: 'id_machineDispo'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(78) : error C2065: 'j'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(83) : error C2065: 'k'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(85) : error C2065: 'Machines'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(85) : error C2065: 'id_machineDispo'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(85) : error C2109: un indice requiert un type tableau ou pointeur
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(85) : error C2065: 'k'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(85) : error C2065: 'k'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(87) : error C2065: 'k'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(89) : error C2065: 'Machines'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(89) : error C2065: 'id_machineDispo'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(89) : error C2109: un indice requiert un type tableau ou pointeur
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(89) : error C2065: 'k'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(92) : error C2065: 'id_machineDispo'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(92) : error C2065: 'Machines'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(92) : error C2065: 'id_machineDispo'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(92) : error C2109: un indice requiert un type tableau ou pointeur
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(93) : error C2065: 'k'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(93) : error C2065: 'id_machineDispo'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(96) : error C2065: 'retards'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(96) : error C2065: 'Machines'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(96) : error C2065: 'id_machineDispo'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(96) : error C2109: un indice requiert un type tableau ou pointeur
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(96) : error C2065: 'k'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(97) : error C2065: 'retards'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(99) : error C2065: 'retards'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(100) : error C2065: 'retardsTotaux'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(100) : error C2065: 'retards'*: identificateur non déclaré
    1>c:\users\documents\visual studio 2008\projects\code_c_edd\code_c_edd\main.c(104) : error C2065: 'retardsTotaux'*: identificateur non déclaré
    1>Le journal de génération a été enregistré à l'emplacement "file://c:\Users\Documents\Visual Studio 2008\Projects\code_c_EDD\code_c_EDD\Debug\BuildLog.htm"
    1>code_c_EDD - 55 erreur(s), 0 avertissement(s)
    ========== Génération*: 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========

  2. #2
    Membre émérite Avatar de orfix
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 707
    Par défaut
    Je n'ai pas de Visual C++ sous la main, mais comme Visual n'est pas tout à fait conforme C99 d'après ce que j'ai entendu dire ici, je te conseille de modifier ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	float temps;
    	clock_t t1, t2;
    	t1 = clock();
    	machine Machines[3];
    	int id_machineDispo;
    	int retardsTotaux = 0;
    	int retards, j, k;
    en cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	float temps;
    	clock_t t1, t2;
    	machine Machines[3];
    	int id_machineDispo;
    	int retardsTotaux = 0;
    	int retards, j, k;
     
    	t1 = clock();
    une remarque concernant ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        qsort((void *) &job,5, sizeof(struct tache), (compfn)compare);
    le cast en (void *) est inutile et celui en (int (*)(const void*, const void*)) est peut-être même dangereux, je te propose de faire ainsi :
    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
     
    int compare(const void *ielem1, const void *ielem2)
    {
    	const struct tache *elem1 = ielem1;
    	const struct tache *elem2 = ielem2;
     
    	if (elem1->due_date < elem2->due_date)
    		return -1;
    	else if (elem1->due_date > elem2->due_date)
    		return 1;
    	else
    		return 0;
    }
    <...>
    	qsort(&job,5, sizeof(struct tache), compare);
    Bonne chance.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 116
    Par défaut
    salut,

    Parfait ssmario2
    Merci beaucoup.

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

Discussions similaires

  1. Comment remonter des bugs "chez" Eclipse
    Par ogattaz dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 22/05/2007, 17h53
  2. IdSMTPServer : Des bugs ?
    Par francky23012301 dans le forum Delphi
    Réponses: 1
    Dernier message: 28/01/2007, 00h30
  3. Ne peut accéder à la liste de correction des bugs...
    Par méphistopheles dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 02/05/2006, 21h59
  4. [BDE] Liste des bugs
    Par bezot3 dans le forum C++Builder
    Réponses: 2
    Dernier message: 05/01/2005, 17h24

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