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 :

Demande D Aide


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 36
    Par défaut Demande D Aide
    j ai le code suivant mais quand j execute sa me donne des valeurs aléatoires pourriez vous m aider et merci d avance #include <stdio.h>
    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
    #include <stdlib.h>
    typedef struct
    {
        char code;
        int da;
        int listeTE[10];
        int listeES[10];
        int priorite;
     
    }processus;
     
     void Saisieprocessus(void)
    {int i=0;
    int j=0;
    char rep='o';
    processus p[10];
       do{
            printf("saisir code processus: \n");
            scanf(" %s",&p[i].code);
            printf("saisir date d arrivee :\n");
            scanf("%d",&p[i].da);
            printf(" saisir liste temps d execution :\n");
        do
            {
            scanf("%d",&p[i].listeTE[j]);
            j++;
            }
         while(p[i].listeTE[j-1]!=0);
            j=0;
           printf("saisir liste entree sorties:\n ");
           do
            {
            scanf("%d",&p[i].listeES[j]);
            j++;
            }while(p[i].listeES[j-1]!=0);
            printf("saisir la priorite :\n");
            scanf("%d",&p[i].priorite);
       i++;
       printf("voulez vous ajouter un nouveau processus:\n");
       scanf(" %s",&rep);
       }while(rep=='o');
       p[i].code=0;
     
     
    }
    void main()
    {
    int i,j;
    processus p[10];
    i=0;j=0;
    Saisieprocessus();
     
    do{
     
     printf("le code du processus est % s :",p[i].code);
     printf("la date d arrivee est %d :\n",p[i].da);
       do
            {
            printf("%d\n",p[i].listeTE[j]);
            j++;
            }
         while(p[i].listeTE[j-1]!=0);
            j=0;
           do
            {
            printf("%d",p[i].listeES[j]);
            j++;
            }while(p[i].listeES[j-1]!=0);
               printf("la priorite est %d",p[i].priorite);
       i++;
     
       }while(p[i-1].code!=0);
     
     
     
     
     
    }

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    Peux tu utiliser la balise CODE (bouton #) et nous donner un exemple de résultat obtenu / attendu.

  3. #3
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 36
    Par défaut
    comme vous pouvez voir dans l image suivante c est la saisie et donc je dois afficher ce que j ai saisie genre le code est .....
    la date est .....
    Images attachées Images attachées  

  4. #4
    Membre expérimenté Avatar de quetzacoatl
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 168
    Par défaut
    Salut,
    Déjà comme la dit mon prédecesseur mets les balises codes cad sélectionne ton code et appuie sur le bouton #.
    ensuite je serai vraiment curieux de savoir ce que tu imagines comme utilité de ta fonction "SaisieProcessus()", parce que une fonction qui ne prend aucun aegument et qui ne renvoie rien, à part pour de l'affichage, je vois pas l'utilité...

  5. #5
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 36
    Par défaut Demande D Aide
    pour le truc de # je sais pas comment m y prendre et la fonction me sert pour remplir un tableau de structure ^^ mais je suis pas sur que ce soit correct donc en attente de vos réponses

  6. #6
    Membre expérimenté Avatar de quetzacoatl
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 168
    Par défaut
    C'est simple tu selectionne le code et tu appuies sur le bouton diez juste au dessus de la fenetre où tu tapes le code
    Après pour ton histoire de fonction tu espère modifier ou créer quelque chose avec une fonction ne prenant aucun argument et qui ne retourne rien...
    Donc je te conseille grandement de revoir les bases des fonctions en C

  7. #7
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 36
    Par défaut
    je bosse sur code blocks et j ai pas de # au dessus de la fênetre ^^' donc si tu peux me dire autre chose

  8. #8
    Membre émérite Avatar de b_reda31
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 899
    Par défaut
    je bosse sur code blocks et j ai pas de # au dessus de la fênetre ^^' donc si tu peux me dire autre chose
    Je vois qu'on est pas sorti de l'auberge... .

    1. Editez votre premier message (là ou vous écrivez votre code).
    2. Sélectionner le code que vous avez écris.(#include <stdio.h>....}while(p[i-1].code!=0);} )
    3. Dans la palette juste en dessous de la zone d'édition. il y a un bouton #. Cliquez dessus.
    4. Valider les modification.

    Voilà rien de compliquer, cela n'a rien à voir à avec votre ide.

  9. #9
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 36
    Par défaut
    deja un probleme de résolu merci ^^'

  10. #10
    Membre éprouvé

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

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

    Informations forums :
    Inscription : Février 2008
    Messages : 39
    Par défaut
    Bonjour,

    J'ai noté un manque d'initialisation de la variable j à 2 endroits du 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
    void Saisieprocessus(void)
    {
    	int i=0;
    	int j=0;
    	char rep='o';
    	processus p[10];
    	do
    	{
    		printf("saisir code processus: \n");
    		scanf(" %s",&p[i].code);
    		printf("saisir date d arrivee :\n");
    		scanf("%d",&p[i].da);
    		printf(" saisir liste temps d execution :\n");
                    j=0;		
                    do
    		{
    			scanf("%d",&p[i].listeTE[j]);
    			j++;
    		}while(p[i].listeTE[j-1]!=0);
    		j=0;
    		printf("saisir liste entree sorties:\n ");
    		do
    		{
    			scanf("%d",&p[i].listeES[j]);
    			j++;
    		}while(p[i].listeES[j-1]!=0);
    		printf("saisir la priorite :\n");
    		scanf("%d",&p[i].priorite);
    		i++;
    		printf("voulez vous ajouter un nouveau processus:\n");
    		scanf(" %s",&rep);
    	}while(rep=='o');
    	p[i].code=0;
    	
    
    }
    et

    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
    	do
    	{
    	
    		printf("le code du processus est % s :",p[i].code);
    		printf("la date d arrivee est %d :\n",p[i].da);
                    j=0;	
                    do
    		{
    			printf("%d\n",p[i].listeTE[j]);
    			j++;
    		}while(p[i].listeTE[j-1]!=0);
    		j=0;
    		do
    		{
    			printf("%d",p[i].listeES[j]);
    			j++;
    		}while(p[i].listeES[j-1]!=0);
    		printf("la priorite est %d",p[i].priorite);
    		i++;
    	
    	}while(p[i-1].code!=0);
    Pour l'explication, le premier tour de chaque boucle est bon car j est systématiquement mis à 0 lors de la déclaration, mais lors de la seconde boucle, on récupère la valeur de j en fin de boucle. Donc il faut bien une remise à 0.

    Pour le moment, je n'ai rien vu d'autre, mais à force d'utiliser des objets, je dois avouer que j'ai perdu la main avec les structures. Je peux te conseiller d'afficher systématiquement ce que tu viens de lire pour voir si ta structure est bien complétée à chaque étape.

    Bonne journée,

    Aldiemus

  11. #11
    Membre émérite Avatar de b_reda31
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 899
    Par défaut
    Bonjour,
    On peut déjà remarquer une chose : il y a une "double" déclaration du vecteur p[10]. Le vecteur qui est affiché dans main n'a rien à voir à celui lu dans la procédure Saisieprocessus.

  12. #12
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    Déjà, premier problème, tu tentes de stocker une chaine de caractère dans un caractère seul :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    [...]
    char code;
    [...]
    scanf(" %s",&p[i].code);
    [...]
    Même si le texte que tu saisies n'est composé que d'un caractère, scanf ajoutera un '\0'.

    Après, comme dit par quetzacoatl (http://www.developpez.net/forums/d10...e/#post5738440), la fonction Saisieprocessus travaille sur une variable locale à la fonction qui ne sort pas de la fonction.

    Pour que Saisieprocessus serve à quelque chose, il faut qu'elle ai des paramètres modifiables ou qu'elle renvoie quelque chose...

    Le prototype de Saisieprocessus deviendrai alors

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    processus* Saisieprocessus(void);
    /* ou */
    void Saisieprocessus(processus* p);

Discussions similaires

  1. Demande d'aide pour query difficile
    Par ericjean514 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 22/02/2005, 18h52
  2. Demande d'aide pour une requête
    Par arkzor dans le forum Requêtes
    Réponses: 3
    Dernier message: 28/12/2004, 02h40
  3. demande d'aide sur samba
    Par marcoss dans le forum Développement
    Réponses: 5
    Dernier message: 04/12/2003, 19h38
  4. [TPW][cours]Demande d'aide pour finir un programme
    Par jf dans le forum Turbo Pascal
    Réponses: 21
    Dernier message: 16/06/2003, 18h10

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