Publicité
+ Répondre à la discussion
Page 1 sur 2 12 DernièreDernière
Affichage des résultats 1 à 20 sur 21
  1. #1
    Invité de passage
    Homme Profil pro Sablond JOSEPH
    Étudiant
    Inscrit en
    février 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Nom : Homme Sablond JOSEPH
    Localisation : Haïti

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : février 2013
    Messages : 14
    Points : 0
    Points
    0

    Par défaut Créer un fichier « .h » (menu)

    Salut a tous, je suis a bout de souffre. je n'arrive pas a appeler mes programmes.
    En fait, mes codes sont très long. Je veux les couper en modules. Voila ce que je fais :


    Code :
    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
    #include<stdio.h> 
    #include<stdlib.h> 
    #include<conio.h> 
    #include<time.h> 
    #include"menu.h" //je rattache ma fonction affiche_menu() au main.c 
    #include"information.h" //je rattache ma fonction information() au main.c 
    int main() 
    { 
    char ch = 'A';'B';'C';'D';'E';'F';'G';'H';//Declaration des caracteres 
     
    do 
    { 
    affiche_menu();//Appelle de la fct affiche_menu 
    ch = getch(); 
    scanf("%c",&ch); //lecture des characteres. 
    switch (ch) 
    { 
    case 'A': 
    printf("\n\nBienvenue sur le programme permettant de saisir des informations des etudiants\nPressez une touche quelconque"); 
    void information(); //j'appelle ma fonction. 
     
    getch(); 
    break; 
    case 'B': 
    printf("\n\nBienvenue sur le Programme permettant d afficher les informations saisies au point 1\nPressez une touche quelconque"); 
    getch(); 
    break; 
    case 'C': 
    printf("\n\nBienvenue sur le Programme permettant de trouver la factorielle d une valeur entiere\nPressez une touche quelconque"); 
    getch(); 
    break; 
    case 'D':printf("\n\nBienvenue sur le Programme permettant de trouver la combinaison de deux valeurs entieres"); 
    getch(); 
    break; 
    case 'E':printf("\n\nBienvenue sur le Programme permettant de former l anagramme d un nom d une personne"); 
    getch(); 
    break; 
    case 'F':printf("\n\nBienvenue sur le Programme permettant de changer la date de l ordinateur"); 
    getch(); 
    break; 
    case 'G':printf("\n\nBienvenue sur le Programme permettant d eteindre l ordinateur"); 
    getch(); 
    break; 
    case 'H':printf("\n\nBienvenue sur le Programme permettant de classer par ordre croissant et decroissant des valeurs saisis"); 
    getch(); 
    break; 
    default: 
    printf("\n\nVotre choix est erroné\nPressez une touche quelconque et réessayez\n"); 
    getch(); 
    break; 
    } 
    } while (ch != '4'); 
    return 0; 
    }


    Ca marche ps,svp j'ai vous prie de m'aider.

  2. #2
    Expert Confirmé Sénior
    Avatar de Sve@r
    Homme Profil pro Frédéric
    Ingénieur développement logiciels
    Inscrit en
    février 2006
    Messages
    4 162
    Détails du profil
    Informations personnelles :
    Nom : Homme Frédéric
    Âge : 45
    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 : 4 162
    Points : 9 053
    Points
    9 053

    Par défaut

    Citation Envoyé par bazvindous Voir le message
    Ca marche ps,svp j'ai vous prie de m'aider.
    Salut
    http://fr.lang.free.fr/cours/Generalites_Csyst_v1.0.pdf (p. 9 a 11)

    Citation Envoyé par bazvindous Voir le message
    je suis a bout de souffre...
    Jolie formule. Plus adaptee a Belzebuth qu'a un humain qui serait plutot a bout de souffle...
    Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
    Tout ce qu'un individu reçoit sans rien faire pour l'obtenir, un autre individu a dû travailler pour le produire sans en tirer profit.
    Tout Pouvoir ne peut distribuer aux uns que ce qu'il a préalablement confisqué à d'autres car on n'accroît pas les biens en les divisant.
    Quand la moitié d'un peuple croit qu'il ne sert à rien de faire des efforts car l'autre moitié les fera pour elle, et quand cette dernière moitié se dit qu'il ne sert à rien d'en faire car ils bénéficieront à d'autres, cela s'appelle le déclin et la fin d'une nation.
    Dr. Adrian Rogers, 1931

  3. #3
    Expert Confirmé Sénior Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2005
    Messages
    23 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2005
    Messages : 23 607
    Points : 34 993
    Points
    34 993

    Par défaut


    La ligne void information(); //j'appelle ma fonction. est mauvaise, elle redéclare la fonction au lieu de l'appeler.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Invité de passage
    Homme Profil pro Sablond JOSEPH
    Étudiant
    Inscrit en
    février 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Nom : Homme Sablond JOSEPH
    Localisation : Haïti

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : février 2013
    Messages : 14
    Points : 0
    Points
    0

    Par défaut

    Citation Envoyé par Médinoc Voir le message

    La ligne void information(); //j'appelle ma fonction. est mauvaise, elle redéclare la fonction au lieu de l'appeler.
    Merci pour ta reponce rapide, et remarque. En faite c'est justement ca mes problemes.
    J'ai 7 programmes(deja preparer) a mettre dans le menu,mais je ne sais pas comment.
    Comme celui-la:
    Code :
    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
       #include<stdio.h>
        #include<conio.h>
     
        #define max 500
        void information()
     
        {
        char nom[max];
        char prenom[max];
        char adresse[max];
        char sexe[max];
        char option[max];
        int age;
        int telephone;
        printf("");
        gets(nom);
        printf(" Entrer votre nom : \n");
        gets(nom);
        printf("Entrer votre prenom: \n");
        gets(prenom);
         printf("Entrer votre adresse: \n");
        gets(adresse);
         printf("Entrer votre sexe: \n");
        gets(sexe);
         printf("Entrer votre option: \n");
        gets(option);
         printf("Entrer votre age: \n");
        scanf("%d",&age);
         printf("Entrer votre telephone: \n");
        scanf("%d",&telephone);
     
                            //creation d'un pointeur FILE
        FILE*pointeurfichier=NULL;
                            //appel a la fonction fopen
        pointeurfichier=fopen("Les informations des etudians.doc","w");
                            //test sur l'ouverture
        if(pointeurfichier!=NULL)
        {
            fprintf(pointeurfichier,"### les informations ###\n");
            fprintf(pointeurfichier," %s \n",nom);
            fprintf(pointeurfichier,"%s \n", prenom);
            fprintf(pointeurfichier,"%s \n", adresse);
            fprintf(pointeurfichier," %s \n", sexe);
            fprintf(pointeurfichier,"%s \n", option);
            fprintf(pointeurfichier,"%d \n",age);
            fprintf(pointeurfichier,"%d \n",telephone);
        }
        else
        {
            printf("impossible d'ouvrir le fichier");
        }
         fclose(pointeurfichier);
     
     
     
    return(0);
     
    }
    Comment faire(qoui mettre dans le menu) pour l'appeler a l'aide du menu, en tappant A.
    merci a tous.

  5. #5
    Expert Confirmé Sénior Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2005
    Messages
    23 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2005
    Messages : 23 607
    Points : 34 993
    Points
    34 993

    Par défaut

    D'abord, des fonctions pour la saisie de chaîne sans utiliser gets():
    Code C :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    /*fpurge.h*/
     
    #ifndef FPURGE_H_20130223
    #define FPURGE_H_20130223
     
    #include <stdio.h>
     
    int truncate_newline(char *str);
    int fpurge(FILE *f);
    int fclean(char *str, FILE *f);
     
    #endif /* ! FPURGE_H_20130223 */
    Code C :
    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
    /*fpurge.c*/
    #include <stdio.h>
     
    /*Fonction pour retirer le \n à la fin d'une chaîne
      (en fait, elle tronque la chaîne au premier \n rencontré).*/
    /* Returns a nonzero value if found, zero if not. */
    int truncate_newline(char *str)
    {
    	int bRet=0;
    	if(str!=NULL)
    	{
    		char *pNewline = strchr(str, '\n');
    		if(pNewLine!=NULL)
    		{
    			bRet = 1;
    			*pNewLine = '\0';
    		}
    	}
    	return bRet;
    }
     
    /*Fonction pour vider le flux entrant jusqu'à la fin de la ligne.*/
    /*Returns 0 if OK, a negative value if EOF.*/
    int fpurge(FILE *f)
    {
    	int c;
    	while((c=fgetc(f))!=EOF && c!='\n')
    	{ }
    	return (c==EOF ? -1 : 0);
    }
     
    /*Fonction qui retire le \n à la fin ET s'assure que toute la ligne a été lue.*/ 
    /* Returns 0 if buffer is full, a positive value if line is complete,
       a negative value if EOF (implies buffer full). */
    int fclean(char *str, FILE *f)
    {
    	int ret = 1;
    	if(!truncate_newline(str))
    		ret = fpurge(f);
    	return ret;
    }
    Ensuite, le code utile:
    Code C :
    1
    2
    3
    4
    5
    6
    7
    8
    /*Information.h*/
     
    #ifndef INFORMATION_H_20130223
    #define INFORMATION_H_20130223
     
    void information(void);
     
    #endif /* ! INFORMATION_H_20130223 */
    Code C :
    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
    /*Information.c*/
    #include<stdio.h>
    #include "fpurge.h"
     
    #define MAX 500
    void information(void)
    {
    	char nom[MAX];
    	char prenom[MAX];
    	char adresse[MAX];
    	char sexe[MAX];
    	char option[MAX];
    	int age;
    	int telephone;
    	printf("\n");
     
    	printf(" Entrer votre nom : \n");
    	fgets(nom, MAX, stdin);
    	fclean(nom, stdin);
    	printf("Entrer votre prenom: \n");
    	fgets(prenom, MAX, stdin);
    	fclean(prenom, stdin);
    	printf("Entrer votre adresse: \n");
    	fgets(adresse, MAX, stdin);
    	fclean(adresse, stdin);
    	printf("Entrer votre sexe: \n");
    	fgets(sexe, MAX, stdin);
    	fclean(sexe, stdin);
    	printf("Entrer votre option: \n");
    	fgets(option, MAX, stdin);
    	fclean(option, stdin);
    	printf("Entrer votre age: \n");
    	scanf("%d",&age);
    	fpurge(stdin);
    	printf("Entrer votre telephone: \n");
    	scanf("%d",&telephone);
    	fpurge(stdin);
     
    	//creation d'un pointeur FILE
    	FILE*pointeurfichier=NULL;
    	//appel a la fonction fopen
    	pointeurfichier=fopen("Les informations des etudians.txt","w");
    	//test sur l'ouverture
    	if(pointeurfichier!=NULL)
    	{
    		fprintf(pointeurfichier,"### les informations ###\n");
    		fprintf(pointeurfichier," %s \n",nom);
    		fprintf(pointeurfichier,"%s \n", prenom);
    		fprintf(pointeurfichier,"%s \n", adresse);
    		fprintf(pointeurfichier," %s \n", sexe);
    		fprintf(pointeurfichier,"%s \n", option);
    		fprintf(pointeurfichier,"%d \n",age);
    		fprintf(pointeurfichier,"%d \n",telephone);
    		/*Note: j'ai mis le fclose() dans le printf(),
    		  parce que fclose(NULL) est un comportement indéterminé (qui plante sous Visual),
    		  contrairement à free(NULL) qui est garanti ne rien faire.*/
    		fclose(pointeurfichier);
    	}
    	else
    	{
    		printf("impossible d'ouvrir le fichier.\n");
    	}
    }
    Code C :
    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
    /*Main.c*/
    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    #include <time.h>
    #include "menu.h" //je rattache ma fonction affiche_menu() au main.c
    #include "information.h" //je rattache ma fonction information() au main.c
     
    int main(void)
    {
    	char ch = 0;
    	do
    	{
    		affiche_menu();//Appelle de la fct affiche_menu
    		/* On fait l'un ou l'autre, pas les deux.*/
    		ch = getch();
    		/*scanf("%c",&ch); //lecture des characteres. */
    		switch (ch)
    		{
    		case 'A':
    		case 'a':
    			printf("\n\nBienvenue sur le programme permettant de saisir des informations des etudiants\nPressez une touche quelconque");
    			information(); //j'appelle ma fonction.
    			getch();
    			break;
    		case 'B':
    		case 'b':
    			printf("\n\nBienvenue sur le Programme permettant d afficher les informations saisies au point 1\nPressez une touche quelconque");
    			getch();
    			break;
    		case 'C':
    		case 'c':
    			printf("\n\nBienvenue sur le Programme permettant de trouver la factorielle d une valeur entiere\nPressez une touche quelconque");
    			getch();
    			break;
    		case 'D':
    		case 'd':
    			printf("\n\nBienvenue sur le Programme permettant de trouver la combinaison de deux valeurs entieres");
    			getch();
    			break;
    		case 'E':
    		case 'e':
    			printf("\n\nBienvenue sur le Programme permettant de former l anagramme d un nom d une personne");
    			getch();
    			break;
    		case 'F':
    		case 'f':
    			printf("\n\nBienvenue sur le Programme permettant de changer la date de l ordinateur");
    			getch();
    			break;
    		case 'G':
    		case 'g':
    			printf("\n\nBienvenue sur le Programme permettant d eteindre l ordinateur");
    			getch();
    			break;
    		case 'H':
    		case 'h':
    			printf("\n\nBienvenue sur le Programme permettant de classer par ordre croissant et decroissant des valeurs saisis");
    			getch();
    			break;
    		default:
    			printf("\n\nVotre choix est erroné\nPressez une touche quelconque et réessayez\n");
    			getch();
    			break;
    		}
    	} while (ch != '4');
    	return 0;
    }
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Invité de passage
    Homme Profil pro Sablond JOSEPH
    Étudiant
    Inscrit en
    février 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Nom : Homme Sablond JOSEPH
    Localisation : Haïti

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : février 2013
    Messages : 14
    Points : 0
    Points
    0

    Par défaut

    Slt Medinoc, c'est super vraiment super ,mil merci ça fait très longtemps que je cherche qlq pour m'aider (2 semaines environ).

    Mais pour être sincère avec vous je ne suis pas trop claire dans vos modifications. Il me reste 6 autres programmes a mettre dans le menu. Je suis NOVIS (DÉBUTANT) en langage C. Se serait sympa de m’éclaircir.
    N.B:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    int bRet=0;
    	if(str!=NULL)
    	{
    		char *pNewline = strchr(str, '\n');//erreur ici (Newline)
    		if(pNewLine!=NULL)                   // c'etait l aulieut de L (NewLine)
    		{
    			bRet = 1;
    			*pNewLine = '\0';
    		}
    	}
    dans le code: fpurge je pirge rien du tout,explique-moi les codes svp.
    dans le code: fpurge.h, a quoi sert le _20130223
    Et enfin dans les deux autres fichier: main.c et information.c
    Code :
    1
    2
    /*main.c*/
    //quel sont les modifications que vous faite dans le code et pourqoui???
    Code :
    1
    2
    /*information.c*/
    //quel sont les modifications que vous faite et pourquoi???
    Encore une fois merci.

  7. #7
    Expert Confirmé Sénior Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2005
    Messages
    23 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2005
    Messages : 23 607
    Points : 34 993
    Points
    34 993

    Par défaut

    Bonjour,
    Pour la première erreur, j'ai oublié d'inclure <string.h>

    Pour le reste, en gros, ça part d'un principe: La fonction gets() ne doit pas être utilisée. Jamais.
    Alors on utilise fgets() à la place. Seulement:
    • Vu qu'on limite la longueur, il faut finir de lire la ligne si elle est plus grande que le tableau de caractères
    • fgets() ne retire pas le \n à la fin, contrairement à gets().

    Pour ça, la fonction fpurge() finit de lire la ligne. Mais il ne faut l'appeler que si on est sûr qu'elle n'a pas été lue entièrement.
    La fonction truncate_newline() cherche le \n dans le buffer, le supprime, et retourne une valeur non-nulle si elle l'a trouvé.
    La fonction fclean() met tout ça ensemble:
    • Si la ligne saisie était assez courte pour tenir dans le buffer, celui-ci contiendra le \n et il n'y aura rien d'autre à faire puisqu'elle aura été lue entièrement.
    • Dans le cas contraire, le buffer ne contiendra pas de \n, donc truncate_newline() retournera zéro, et fpurge() sera appelée pour finir de lire la ligne.


    La suite au prochain post.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  8. #8
    Expert Confirmé Sénior Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2005
    Messages
    23 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2005
    Messages : 23 607
    Points : 34 993
    Points
    34 993

    Par défaut

    dans le code: fpurge.h, a quoi sert le _20130223
    Vu que tu demandes spécifiquement le _20130223, je suppose que tu connais déjà les gardes d'inclusion. J'ai juste rajouté ça (la date d'aujourd'hui) pour être sur de ne pas avoir de conflit si jamais il y a un autre fichier nommé fpurge.h quelque part.

    /*information.c*/
    //quel sont les modifications que vous faite et pourquoi???
    La principale modif, ça a été d'utiliser fgets() + fclean() plutôt que gets(). J'ai aussi rajouté un fpurge() après chaque scanf(), parce que la fonction scanf() telle qu'elle est appelée ici ne lit pas la ligne en entier.

    /*main.c*/
    //quel sont les modifications que vous faite dans le code et pourqoui???
    Pour les case, ça me parait tellement évident que je ne sais pas comment l'expliquer.
    Mon autre modif, c'est d'appeler information() correctement.
    C'est à peu près tout ce que j'ai changé.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #9
    Invité de passage
    Homme Profil pro Sablond JOSEPH
    Étudiant
    Inscrit en
    février 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Nom : Homme Sablond JOSEPH
    Localisation : Haïti

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : février 2013
    Messages : 14
    Points : 0
    Points
    0

    Par défaut

    Ok Medinoc merci, il y a bcp de choses qui me depassent. Passons aux restes de mes problemmes.
    Tout mon pb c'est que-je comprends ps comment appliquer les principes,l'odres
    pr que mon fichies main.c appelle tous mes programmes, car ils ont au nombres de 6.
    Par EX 2 programmes et d'autres:

    Code :
    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
     
    //ordre croissant.c
    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    #include "fpurge.h"
    #include <string.h>
    void ordre_crois_et_decrois()
    {
        printf("\n\t\t****Bienvenue sur classement des valeurs****\n\t\t");
    }
     
    int main()
    {
    /* Déclarations */
     int tab[50]; /* tableau donné  */
     int N;     /* dimension      */
     int I;     /* indice courant */
     int MIN;   /* position du minimum */
     int MAX;   /* position du maximum */
     /* Saisie des données */
     printf("  Entre la Dimension du tableau (max.50) : ");
     scanf("%d", &N );
     for (I=0; I<N; I++)
        {
         printf("Element %d : ", I);
         scanf("%d", &tab[I]);
        }
     /* Affichage du tableau */
     printf("Tableau entre:\n");
     for (I=0; I<N; I++)
         printf("%d ", tab[I]);
     printf("\n");
     printf("\n\n!!!!!TRIAGE DES DONNES!!!!!\n\n");
     printf("--Affichage Croissant--\n\n");
    system("PAUSE");
    /*affichage par ordre croissant*/
    char j,k;
    for(j=N;j>0;j--)
    {
        for(I=0;I<j-1;I++)
        {
            if(tab[I]>tab[I+1])
            {
                k=tab[I];
                tab[I]=tab[I+1];
                tab[I+1]=k;
            }
        }
    }
    for(I=0;I<N;I++)
    {
        printf("%d\t",tab[I]);
    }
    printf("\n\n");
    printf("--Affichage decroissant--\n\n");
    system("PAUSE");
    /*affichage decroissant*/
    for(j=N;j>0;j--)
    {
        for(I=0;I<j-1;I++)
        {
            if(tab[I]<tab[I+1])
            {
                k=tab[I];
                tab[I]=tab[I+1];
                tab[I+1]=k;
            }
        }
    }
    for(I=0;I<N;I++)
    {
        printf("%d\t",tab[I]);
    }
     printf("\n");
    getch();
    printf("\n\nMerci!! aurevoir....\n");
    }
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    //ordre croissant.h
    #ifndef ordre_crois_et_decrois_H_20130223
    #define ordre_crois_et_decrois_H_20130223
     
     void ordre_crois_et_decrois();
    #endif /* ! ordre_crois_et_decrois_H_20130223 */
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    // factorielle.c
    # include <stdio.h>
    # include <stdlib.h>
    #include "fpurge.h"
    #include<string.h>
    int main(int argc, char *argv[])
    { factorielle();
        int fact = 0,n = 0;
        system ("PAUSE");
        printf("\n\nEntrer une valeur:  ");
        scanf("%d", &n);
        for (fact = 1; n > 1; n--)
        fact*=n;
        printf("Votre factorielle est : %d\n\n",fact);
     
    }
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
     
    // factorielle.h
     
    #ifndef Factorielle_H_20130223
    #define Factorielle_H_20130223
     void factorielle();
     
    #endif /* ! Factorielle_H_20130223 */
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    // main.c
                case 'c':
                case'C':
                printf("Entrer un nombre entier:\n");
                factorielle();
                break;
                :
                :
                case 'h':
                case'H':
                printf(" Ordre croissant et decroissant un ensemble de valeur saisir par un utilisateur:\n");
                ordre_crois_et_decrois();
    Les deux donnent presque les memes erreurs. J'essaie de faire les mm modif que toi ca ne marche pas.
    merci.

  10. #10
    Expert Confirmé Sénior Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2005
    Messages
    23 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2005
    Messages : 23 607
    Points : 34 993
    Points
    34 993

    Par défaut

    Il va falloir préciser quelles erreurs tu as.

    L'erreur principale que je vois par contre, c'est que tu déclares et appelles une fonction factorielle(), mais tu ne m'as pas montré sa définition.

    Et aussi, tu sembles avoir plusieurs main().
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  11. #11
    Invité de passage
    Homme Profil pro Sablond JOSEPH
    Étudiant
    Inscrit en
    février 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Nom : Homme Sablond JOSEPH
    Localisation : Haïti

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : février 2013
    Messages : 14
    Points : 0
    Points
    0

    Par défaut

    Bonjour Medi...ravis de vous ré-parlez

    C:\Users\GOGO\Desktop\pratique\main.c|11|multiple definition of `main'|
    obj\Debug\factorielle.o:C:\Users\GOGO\Desktop\pratique\factorielle.c|14|first defined here|
    C:\Users\GOGO\Desktop\pratique\factorielle.c|20|warning: 'fact' is used uninitialized in this function [-Wuninitialized]|
    ||=== Build finished: 4 errors, 4 warnings (0 minutes, 5 seconds) ===|

    Vous avez raison j'ai plusieurs main comment corriger cette erreur??


    Code :
    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
    /*Main.c*/
    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    #include <time.h>
    #include "menu.h" //je rattache ma fonction affiche_menu() au main.c
    #include "information.h" //je rattache ma fonction information() au main.c
    #include "factorielle.h"
    #include "croissant_decroissant.h"
     
    case 'C':
    		case 'c':
    			printf("\n\nBienvenue sur le Programme permettant de trouver la factorielle d une valeur entiere\nPressez une touche quelconque");
    			long factorielle( long fact, long n);
    			getch();
    			break;
                    :
                    :
    case 'H':
    		case 'h':
    			printf("\n\nBienvenue sur le Programme permettant de classer par ordre croissant et decroissant des valeurs saisis");
    			ordre_crois_et_decrois();
    			getch();
    			break;
    		default:
    			printf("\n\nVotre choix est erroné\nPressez une touche quelconque et réessayez\n");
    			getch();
    			break;
    		}
    	} while (ch != '4');
    	return 0;
    }
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
     
    //croissant_decroissant.h
    #ifndef CROISSANT_DECROISSANT_H_INCLUDED
    #define CROISSANT_DECROISSANT_H_INCLUDED
     
    void ordre_crois_et_decrois(void);
     
    #endif // CROISSANT_DECROISSANT_H_INCLUDED
    Code :
    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
     
    //croissant_decroissant.c
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    #include "fpurge.h"
    void ordre_crois_et_decrois(void)
    {
        printf("\n\t\t****Bienvenue sur classement des valeurs****\n\t\t");
    }
     
     
    int main()
    {
    /* Déclarations */
     int tab[50]; /* tableau donné  */
     int N;     /* dimension      */
     int I;     /* indice courant */
     int MIN;   /* position du minimum */
     int MAX;   /* position du maximum */
     /* Saisie des données */
     printf("  Entre la Dimension du tableau (max.50) : ");
     scanf("%d", &N );
     for (I=0; I<N; I++)
        {
         printf("Element %d : ", I);
         scanf("%d", &tab[I]);
        }
     /* Affichage du tableau */
     printf("Tableau entre:\n");
     for (I=0; I<N; I++)
         printf("%d ", tab[I]);
     printf("\n");
     printf("\n\n!!!!!TRIAGE DES DONNES!!!!!\n\n");
     printf("--Affichage Croissant--\n\n");
    system("PAUSE");
    /*affichage par ordre croissant*/
    char j,k;
    for(j=N;j>0;j--)
    {
        for(I=0;I<j-1;I++)
        {
            if(tab[I]>tab[I+1])
            {
                k=tab[I];
                tab[I]=tab[I+1];
                tab[I+1]=k;
            }
        }
    }
    for(I=0;I<N;I++)
    {
        printf("%d\t",tab[I]);
    }
    printf("\n\n");
    printf("--Affichage decroissant--\n\n");
    system("PAUSE");
    /*affichage decroissant*/
    for(j=N;j>0;j--)
    {
        for(I=0;I<j-1;I++)
        {
            if(tab[I]<tab[I+1])
            {
                k=tab[I];
                tab[I]=tab[I+1];
                tab[I+1]=k;
            }
        }
    }
    for(I=0;I<N;I++)
    {
        printf("%d\t",tab[I]);
    }
     printf("\n");
    getch();
    printf("\n\nMerci!! aurevoir....\n");
    }
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    //factorielle.c
    # include <stdio.h>
    # include <stdlib.h>
    #include "fpurge.h"
    long factorielle( long fact, long n)
    {
     for (fact = 1; n > 1; n--)
        fact*=n;
        if (fact==0 || fact==1)
        return 1;
     
    }
     
    int main()
    {
     long  fact,n;
    printf("\t\t    ***BIENVENU DANS FACTORIELLE PROGRAMME***\n\n");
        system ("PAUSE");
        printf("\n\nEntrer une valeur:  ");
        scanf("%d", &n);
       printf("Votre factorielle est : %d\n\n", factorielle(fact,n));
    }
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
     
    //factorielle.h
    #ifndef FACTORIELLE_H_INCLUDED
    #define FACTORIELLE_H_INCLUDED
     
    long factorielle( long fact, long n);
     
    #endif // FACTORIELLE_H_INCLUDED
    merci.

  12. #12
    Expert Confirmé Sénior Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2005
    Messages
    23 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2005
    Messages : 23 607
    Points : 34 993
    Points
    34 993

    Par défaut

    Vous avez raison j'ai plusieurs main comment corriger cette erreur??
    Euh... En ne faisant pas plusieurs main()? Je ne vois pas ce qu'il y a à expliquer ici...


    Ce code redéclare encore la fonction avant de l'appeler:
    Code :
    1
    2
    3
    			printf("\n\nBienvenue sur le Programme permettant de trouver la factorielle d une valeur entiere\nPressez une touche quelconque");
    			long factorielle( long fact, long n);
    			getch();
    De plus, pourquoi ta fonction a-t-elle deux paramètres, dont un dont tu ignores la valeur initiale?
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    long factorielle( long fact, long n)
    {
     for (fact = 1; n > 1; n--)
        fact*=n;
        if (fact==0 || fact==1)
        return 1;
     
    }
    Version corrigée:
    Code C :
    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
    /*factorielle.c*/
    #include <stdio.h>
    #include "fpurge.h"
     
    long factorielle(long n)
    {
    	long fact = 1;
    	if(n==0 || n==1)
    		return fact;
    	for ( ; n > 1 ; n--)
    		fact *= n;
    	return fact;
    }
     
    void factorielle_ligne_commande(void)
    {
    	long nombre = 0;
    	printf("\n\nBienvenue sur le Programme permettant de trouver la factorielle d une valeur entiere\nEntrez la valeur:");
    	scanf("%ld", &nombre);
    	fpurge(stdin);
    	if(nombre > 12 && sizeof(long)<=4)
    		puts("Nombre trop grand, sa factorielle ne tiendra pas dans un 'long'.");
    	else
    	{
    		long f = factorielle(nombre);
    		printf("Factorielle: %ld\n", f);
    	}
    }
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    /*factorielle.h*/
    #ifndef FACTORIELLE_H_20130204
    #define FACTORIELLE_H_20130204
     
    long factorielle(long n);
    void factorielle_ligne_commande(void);
     
    #endif // FACTORIELLE_H_20130204
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    /*main.c*/
     
    ...
    		case 'C':
    		case 'c':
    			factorielle_ligne_commande();
    			getch();
    			break;
    ...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  13. #13
    Invité de passage
    Homme Profil pro Sablond JOSEPH
    Étudiant
    Inscrit en
    février 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Nom : Homme Sablond JOSEPH
    Localisation : Haïti

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : février 2013
    Messages : 14
    Points : 0
    Points
    0

    Par défaut

    Enfin merci infiniment, j'ai fini par arranger presque tout mes programmes(7/9) dans le menu gras a vous.
    A note que je trouve super ce tactique:
    // infosaisir.c
    void factorielle_ligne_commande(void) C-A-D void Non-du-programme_ligne_commande(void)
    Je ne savais ps si une fntion qui prend rien en entre et en sorti pouvais compiler et lancer les Instructions(Codes) sans pb.
    Mes autres Questions
    Le programme infosaisir.c est correctement inclut dans le menu, mais il fait rien lorsque je presse B. Je ne vois pas l'erreur???
    le programme date.c est bien inclut, mais lorsque je tape le mm-dd-yy(mois-jour-annee) il me dit: A required privilege is not held by the client. que se parce-t'il??

    Code :
    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
     
    // infosaisir.c
    #include<stdio.h>
    #include<stdlib.h>
    #define max 500
    #include "fpurge.h"
    void infosaisir(void)
    {
      // Lire le contenu du fichier
        printf("le contenu du fichier:\n");
        FILE*pointeur=NULL;
        pointeur=fopen(" les informations des etudiants.doc","r");
        char chaine[max];
        if(pointeur!=NULL)
        {
            while(fgets (chaine,max,pointeur)!=NULL);
            {
                printf("%s\n", chaine);
     
            }
     
        }
     
     fclose(pointeur);
     
    }
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
     
    // infosaisir.h
    #ifndef INFOSAISIR_H_INCLUDED
    #define INFOSAISIR_H_INCLUDED
     
    void infosaisir(void);
     
    #endif // INFOSAISIR_H_INCLUDED
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    // date.c
    #include <stdio.h>
    #include <stdlib.h>
    #include "fpurge.h"
    void date_ligne_commande(void)
    {
    printf("BIENVENUE DANS LE PROGRAMME PERMETTANT DE CHANGER LA DATE\n");
    getch();
    system("Date");
    return 0;
    }
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
     
    // date.h
    #ifndef DATE_H_INCLUDED
    #define DATE_H_INCLUDED
     
    void date_ligne_commande(void);
     
    #endif // DATE_H_INCLUDED
    Code :
    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
     
    /*Main.c*/
    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    #include <time.h>
    #include "menu.h" //je rattache ma fonction affiche_menu() au main.c
    #include "information.h" //je rattache ma fonction information() au main.c
    #include "factorielle.h"
    #include "croissant_decroissant.h"
    #include "infosaisir.h"
    #include "combinaison.h"
    #include "Eteindre_lordinateur.h"
    #include "date.h"
                        :
                        :
                    case 'B':
    		case 'b':
    			printf("\n\nBienvenue sur le Programme permettant d afficher les informations saisies au point 1\nPressez une touche quelconque");
    			infosaisir();
    			getch();
    			break;
                        :
                        :
                    case 'F':
    		case 'f':
    			printf("\n\nBienvenue sur le Programme permettant de changer la date de l ordinateur");
    			date_ligne_commande();
    			getch();
    			break;
                         :
                         :
    Autre Question.
    Dans le programme Factorielle, lorceque je tape: -1, -4 ect il me retourne 1 ou autres nombres babare. Comment faire pour l'arranger car il n'existe pas de factorielle pour les nombres negatifs.

    Code :
    1
    2
    3
    4
    5
    6
    if(nombre > 12 && sizeof(long)<=4)
    		puts("Nombre trop grand, sa factorielle ne tiendra pas dans un 'long'.");
    	else
    	{
    		long f = factorielle(nombre);
    		printf("Factorielle: %ld\n", f);
    apres ce message Nombre trop grand, sa factorielle ne tiendra pas dans un 'long' N'y a t'il pas moyen de me redemander d'entre un nombre >= 12? si OUi comment???

    merci bcp.

  14. #14
    Expert Confirmé Sénior Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2005
    Messages
    23 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2005
    Messages : 23 607
    Points : 34 993
    Points
    34 993

    Par défaut

    Pour le coup du infosaisir(), je ne sais pas.

    Mais pour le coup de la date, il faut exécuter le programme en tant qu'administrateur.
    Quant au fait de redemander un nombre, oui c'est possible de faire une boucle, mais je n'ai pas le temps et l'énergie de le faire pour toi.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  15. #15
    Invité de passage
    Homme Profil pro Sablond JOSEPH
    Étudiant
    Inscrit en
    février 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Nom : Homme Sablond JOSEPH
    Localisation : Haïti

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : février 2013
    Messages : 14
    Points : 0
    Points
    0

    Par défaut

    Citation Envoyé par Médinoc Voir le message
    Mais pour le coup de la date, il faut exécuter le programme en tant qu'administrateur.
    Quant au fait de redemander un nombre, oui c'est possible de faire une boucle, mais je n'ai pas le temps et l'énergie de le faire pour toi.
    Oke merci mais:
    Pouvez vous me promettre de le faire pour moi???
    Quelle bibliothèque dois-je utiliser(que code) pour ouvrir la console en mode ADM???

    vous avez oubliez une question.
    Dans le programme Factorielle, lorceque je tape: -1, -4 ect il me retourne 1 ou autres nombres babare. Comment faire pour l'arranger car il n'existe pas de factorielle pour les nombres negatifs.

  16. #16
    Expert Confirmé Sénior Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2005
    Messages
    23 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2005
    Messages : 23 607
    Points : 34 993
    Points
    34 993

    Par défaut

    1. Non.
    2. Pour faire ça automatiquement, c'est trop compliqué.
    3. Ben, tu rajoutes un autre if...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  17. #17
    Nouveau Membre du Club
    Homme Profil pro Rulx Philome Alexis
    Étudiant
    Inscrit en
    janvier 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Nom : Homme Rulx Philome Alexis
    Localisation : Haïti

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : janvier 2013
    Messages : 29
    Points : 25
    Points
    25

    Par défaut

    Citation Envoyé par bazvindous Voir le message
    Oke merci mais:
    Pouvez vous me promettre de le faire pour moi???
    Quelle bibliothèque dois-je utiliser(que code) pour ouvrir la console en mode ADM???

    vous avez oubliez une question.
    Pour le fait que ltu n'arrives pas à sécuriser les nombres positifs.
    Comme a dit Medinok un if fera l'affaire mais je rajoute aussi une boucle pour redemander ce nombre en cas d'erreur c'est a dire quand on rentre un nombre negatif

    Voir ce code:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    #include <stdio.h>
    #include <stdlib.h>
     
    int main(int argc, char** argv)
    {
        int nbr;
        printf("\t\tEntrez un nombre superieur ou egal a zero\n");/*car la factorielle de zero
        est possible*/
        do
        {
            scanf("%d",&nbr);
            if(nbr<0)//une structure conditionnelle pour avertir l'utilisateur
            //de son erreur
            {
                printf("\t\tOn ne peut pas calculer la factorielle d'un nombre neg\n");
                printf("\t\tDonnez un nombre positif\n");
            }
        }while(nbr<0);//afin d'exiger qu'on entre de nouveau le nombre
        //en cas d'erreur donc quand c'est négatif
        return 0;
    }
    J'espere que ca t'aidera

  18. #18
    Invité de passage
    Homme Profil pro Sablond JOSEPH
    Étudiant
    Inscrit en
    février 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Nom : Homme Sablond JOSEPH
    Localisation : Haïti

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : février 2013
    Messages : 14
    Points : 0
    Points
    0

    Par défaut

    Thank you Alexisleprogrammeur.Bavooooooo courrage!!

  19. #19
    Invité de passage
    Homme Profil pro Sablond JOSEPH
    Étudiant
    Inscrit en
    février 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Nom : Homme Sablond JOSEPH
    Localisation : Haïti

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : février 2013
    Messages : 14
    Points : 0
    Points
    0

    Par défaut

    Slt,
    ca ne veux pas marcher,san donner la moindre erreur.
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    #include<stdio.h>
    #include<stdlib.h>
    #define max 500
    #include "fpurge.h"
    void infosaisir(void)
    {
      // Lire le contenu du fichier
        printf("\nle contenu du fichier:\n");
        FILE*pointeur=NULL;
        pointeur=fopen(" les informations des etudiants.txt","r");
        char chaine[max];
        if(pointeur!=NULL)
        {
            while(fgets (chaine,max,pointeur)!=NULL);
            {
                printf("%s\n", chaine);
     
            }
     
        }
     
     fclose(pointeur);
     
    }
    Que pensez-vous?

  20. #20
    Expert Confirmé Sénior Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2005
    Messages
    23 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2005
    Messages : 23 607
    Points : 34 993
    Points
    34 993

    Par défaut

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        if(pointeur!=NULL)
        {
            while(fgets (chaine,max,pointeur)!=NULL);
            {
                printf("%s\n", chaine);
     
            }
     
        }
        else
            perror("echec de fopen");
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •