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 :

Systéme de contrôle des appels téléphoniques


Sujet :

C

  1. #1
    Nouveau Candidat au Club Avatar de mad0210
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2016
    Messages : 14
    Points : 0
    Points
    0
    Par défaut Systéme de contrôle des appels téléphoniques
    Bonjour,

    j'ai besoin d'aide
    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
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define N 100
     
     
    int bonNumero(char *numero)
    {
        int okLong, okNum;
     
        okLong = strlen(numero) == 9;
        okNum = numero[0] == '7' && (numero[1] == '7' ||
                                     numero[1] == '6' ||
                                     numero[1] == '0' ||
                                     numero[1] == '8');
     
        if (!okLong && okNum)
            printf("Le numero doit comporter 9 chiffres\n");
        if (!okLong && !okNum)
            printf("Le numero doit comporter 9 chiffres et commence par 77 ou 76 ou 70 ou 78\n");
        if (okLong && !okNum)
            printf("Le nummero doit commencer par : 77 ou 76 ou 70 ou 78\n");
     
        return okNum && okLong; 
    }
     
    int bonNumerocorres(char *numerocorres)
    {
        int i, oknumcorres = 0;
        int preO = 5, preT = 5, preE = 5;
        int ind1, ind2, ind3;
        int mat[3][N] ={{772314440, 782314440, 774517070, 784517070, 778868181},
                        {762314440, 764517070, 768868181, 763570521, 765181304}, 
                        {702314440, 704517070, 708868181, 703570521, 705181304}};
        char numero[30];
     
     
        if (oknumcorres == numero)
            printf("Le numero du correspondant doit etre different de votre numero\n");
        if (ind1 == 77 || ind1 == 78)
        {
            for (i = 0; i <= preO; i++)
            {
                if (mat[0][i] == numero)
                {
                oknumcorres = 1;
                i = preO;
                }
            }
            if (oknumcorres == 0)
            printf("Ce numero n'est pas enregistre\n");
        }
        if (ind1 == 76)
        {
            for (i = 0; i <= preT; i++)
            {
                if (mat[1][i] == numero)
                {
                oknumcorres = 1;
                i = preT;
                }
            }
            if (oknumcorres == 0)
            printf("Ce numero n'est pas enregistre\n");
        }
        if (ind1 == 70)
        {
            for (i = 0; i <= preE; i++)
            {
                if (mat[2][i] == numero)
                {
                oknumcorres = 1;
                i = preE;
                }
            }
            if (oknumcorres == 0)
            printf("Ce numero n'est pas enregistre\n");
        }
     
        return oknumcorres;
    }
     
     
    int main()
    {
        int credit, dureecomsouhaite;
        char numero[30], numerocorres[30];
     
        do 
        {
            printf("Entrer votre numero\n");
            scanf("%s", &numero);
        }
        while (!bonNumero(numero));
     
        do
        {
            printf("Entrer le montant de votre credit\n");
            scanf("%d",&credit);
     
            if (credit < 60)
                printf("Le credit doit etre superieur ou egale a 60\n");
        }
        while (credit < 60);
     
        do
        {
            printf("Entrer le numero du correspondant\n");
            scanf("%s", &numerocorres);
        }
        while (!bonNumero(numerocorres) || !bonNumerocorres(numerocorres));
     
        do
        {
            printf("Entrer la duree de communication souhaitee\n");
            scanf("%d", &dureecomsouhaite);    
        }
        while (dureecomsouhaite < 0);
     
     
     
     
     
        return 0;
    }
    Merci d'avance.

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 370
    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 370
    Points : 23 625
    Points
    23 625
    Par défaut
    Bonjour,

    Quel est le problème ?

  3. #3
    Nouveau Candidat au Club Avatar de mad0210
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2016
    Messages : 14
    Points : 0
    Points
    0
    Par défaut
    j'arrive pas à faire le controle sur le numéro du correspondant

  4. #4
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Sur les 126 lignes de code postées, dans quelle fonction se situe le problème ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  5. #5
    Membre émérite
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Points : 2 601
    Points
    2 601
    Par défaut
    Bonjour,
    le premier qui t'apporte une aide est ton compilateur …
    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
    $ gcc -Wall -Wextra -Wmissing-prototypes -c t.c
    t.c:8:5: warning: no previous prototype for ‘bonNumero’ [-Wmissing-prototypes]
     int bonNumero(char *numero)
         ^
    t.c:28:5: warning: no previous prototype for ‘bonNumerocorres’ [-Wmissing-prototypes]
     int bonNumerocorres(char *numerocorres)
         ^
    t.c: In function ‘bonNumerocorres’:
    t.c:39:21: warning: comparison between pointer and integer
         if (oknumcorres == numero)
                         ^
    t.c:45:27: warning: comparison between pointer and integer
                 if (mat[0][i] == numero)
                               ^
    t.c:58:27: warning: comparison between pointer and integer
                 if (mat[1][i] == numero)
                               ^
    t.c:71:27: warning: comparison between pointer and integer
                 if (mat[2][i] == numero)
                               ^
    t.c:32:21: warning: unused variable ‘ind3’ [-Wunused-variable]
         int ind1, ind2, ind3;
                         ^
    t.c:32:15: warning: unused variable ‘ind2’ [-Wunused-variable]
         int ind1, ind2, ind3;
                   ^
    t.c:28:27: warning: unused parameter ‘numerocorres’ [-Wunused-parameter]
     int bonNumerocorres(char *numerocorres)
                               ^
    t.c: In function ‘main’:
    t.c:93:15: warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘char (*)[30][-Wformat=]
             scanf("%s", &numero);
                   ^
    t.c:110:15: warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘char (*)[30][-Wformat=]
             scanf("%s", &numerocorres);
                   ^
    t.c: In function ‘bonNumerocorres’:
    t.c:41:8: warning: ‘ind1’ is used uninitialized in this function [-Wuninitialized]
         if (ind1 == 77 || ind1 == 78)
            ^
    Quelles erreurs ne comprends-tu pas ?

  6. #6
    Nouveau Candidat au Club Avatar de mad0210
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2016
    Messages : 14
    Points : 0
    Points
    0
    Par défaut
    Au niveau de la fonction bonNumerocorres

  7. #7
    Membre émérite
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Points : 2 601
    Points
    2 601
    Par défaut
    Tu compares des int et des char* … pas bon. Ton compilateur te le dis. Compare des variables du même type, transforme l'une en l'autre (int→chaîne sprintf, chaîne→int strtol) et compare les correctement (== pour des nombres, strcmp pour des chaînes).
    Comprendre les messages du compilateur pour résoudre les warnings et erreurs est bien plus rapide de laisser des messages sur les forums. Sur ce problème tu auras perdu 24H …

  8. #8
    Nouveau Candidat au Club Avatar de mad0210
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2016
    Messages : 14
    Points : 0
    Points
    0
    Par défaut
    La fonction bonNumerocorres je l'ai appelé pour qu'il m'aide à faire le contrôle de saisie quand l'utilisateur entre le numerocorres pour donner les resultats suivants:
    s'il entre un numérocorres qui est identique à son numéro, le programme lui informe que le numero de votre correspondant doit etre different de votre numero.
    s'il entre un numerocorres qui n'est pas enregistré, le programme lui informe que ce numéro n'est pas enregistré.

  9. #9
    Nouveau Candidat au Club Avatar de mad0210
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2016
    Messages : 14
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par picodev Voir le message
    Tu compares des int et des char* … pas bon. Ton compilateur te le dis. Compare des variables du même type, transforme l'une en l'autre (int→chaîne sprintf, chaîne→int strtol) et compare les correctement (== pour des nombres, strcmp pour des chaînes).
    Comprendre les messages du compilateur pour résoudre les warnings et erreurs est bien plus rapide de laisser des messages sur les forums. Sur ce problème tu auras perdu 24H …
    moi je suis débutant je veux de l'aide mais pas de jugement dis moi remplace cette ligne par ça oubien tu répond pas à mes post c 'est simple

  10. #10
    Membre émérite
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Points : 2 601
    Points
    2 601
    Par défaut
    Citation Envoyé par mad0210 Voir le message
    moi je suis débutant je veux de l'aide mais pas de jugement dis moi remplace cette ligne par ça oubien tu répond pas à mes post c 'est simple
    La susceptibilité c'est jamais bon quand on apprend.
    Je t'apprends à lire les messages de ton compilateur, à les comprendre et à débuguer ton programme.
    Je t'apprends à exposer ton problème sur un forum car un «voilà mon code, ça fonctionne pas, aidez moi» c'est pas la meilleure manière.
    Je t'apprends qu'il ne faut pas mélanger les pommes et les poires, je te signale quelle est une de tes erreurs, comment y remédier et quelles fonctions utiliser. Si tu n'es pas capable de chercher un peu par toi-même et si tu attends une solution toute faite sans rien nous expliquer ni montrer de bonne volonté c'est clair que tu n'auras pas énormément de réponse.
    Je t'apprends surtout qu'un forum ce n'est ni un générateur automatique de code, ni un débugueur automatique, ni une boule de cristal magique.

    Bon courage pour la suite.

  11. #11
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Citation Envoyé par mad0210 Voir le message
    moi je suis débutant je veux de l'aide mais pas de jugement dis moi remplace cette ligne par ça oubien tu répond pas à mes post c 'est simple
    C'est même encore plus simple : personne ici ne te fera le travail à ta place.
    Si tu postes ici c'est pour avoir de l'aide et pour t'améliorer toi-même (cf. la charte du forum que tu as acceptée en t'inscrivant). Si tu montres de la mauvaise volonté, les bénévoles ne prendront plus la peine de te lire.
    Les bénévoles utilisent un peu de leur temps libre pour aider ceux qui ont des problèmes. Ils donnent des réponses ou des pistes d'amélioration, à toi d'avoir l'humilité d'accepter les conseils.

    La réponse de picodev n'a rien à voir avec un jugement. Dans son premier message, il te donne tout ce qu'il faut pour avancer dans la résolution de ton problème. N'hésite pas à poser des questions sur ce que tu n'as pas compris dans son explication et nous nous ferons un plaisir de répondre et continuerons à te donner des conseils.
    Montre ta bonne volonté en prenant en compte ce que picodev te dit : corrige les erreurs et warning de compilation.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  12. #12
    Nouveau Candidat au Club Avatar de mad0210
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2016
    Messages : 14
    Points : 0
    Points
    0
    Par défaut
    j'ai pas toujours dit de faire le projet à ma place j'ai écrit mon code je l'ai posté j'ai demandé de l'aide pour la fonction bonNumerocorres seulement

  13. #13
    Membre expérimenté

    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2009
    Messages
    553
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2009
    Messages : 553
    Points : 1 672
    Points
    1 672
    Par défaut
    Citation Envoyé par mad0210 Voir le message
    j'ai pas toujours dit de faire le projet à ma place j'ai écrit mon code je l'ai posté j'ai demandé de l'aide pour la fonction bonNumerocorres seulement
    ... et des conseils t'ont été donnés pour résoudre ton problème. Maintenant, essaye de le résoudre par toi-même, c'est bon pour toi. Si tu n' y arrives pas, montre-nous ce que tu as essayé de corriger, explique ce qui ne marche pas, et ainsi de suite.

    Tu progresseras bien mieux si tu arrives toi-même à la solution. Tu as obtenu des indices, utilise-les.

  14. #14
    Nouveau Candidat au Club Avatar de mad0210
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2016
    Messages : 14
    Points : 0
    Points
    0
    Par défaut AIDE
    SVP!!! aidez moi je dois rendre le projet le 11 et j'ai pas encore terminé
    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define N 100
     
     
    int bonNumero(char *numero)
    {
        int okLong, okNum;
     
        okLong = strlen(numero) == 9;
        okNum = numero[0] == '7' && (numero[1] == '7' ||
                                     numero[1] == '6' ||
                                     numero[1] == '0' ||
                                     numero[1] == '8');
     
        if (!okLong && okNum)
            printf("Le numero doit comporter 9 chiffres\n");
        if (!okLong && !okNum)
            printf("Le numero doit comporter 9 chiffres et commence par 77 ou 76 ou 70 ou 78\n");
        if (okLong && !okNum)
            printf("Le nummero doit commencer par : 77 ou 76 ou 70 ou 78\n");
     
        return okNum && okLong; 
    }
     
    int bonNumerocorres(char *numerocorres)
    {
        int i, oknumcorres = 0;
        int preO = 5, preT = 5, preE = 5;
        int ind1, ind2, ind3;
        int mat[3][N] ={{772314440, 782314440, 774517070, 784517070, 778868181},
                        {762314440, 764517070, 768868181, 763570521, 765181304}, 
                        {702314440, 704517070, 708868181, 703570521, 705181304}};
        char numero[30];
     
     
        if (oknumcorres == sprintf()
            printf("Le numero du correspondant doit etre different de votre numero\n");
        if (ind1 == 77 || ind1 == 78)
        {
            for (i = 0; i <= preO; i++)
            {
                if (mat[0][i] == numero)
                {
                oknumcorres = 1;
                i = preO;
                }
            }
            if (oknumcorres == 0)
            printf("Ce numero n'est pas enregistre\n");
        }
        if (ind1 == 76)
        {
            for (i = 0; i <= preT; i++)
            {
                if (mat[1][i] == numero)
                {
                oknumcorres = 1;
                i = preT;
                }
            }
            if (oknumcorres == 0)
            printf("Ce numero n'est pas enregistre\n");
        }
        if (ind1 == 70)
        {
            for (i = 0; i <= preE; i++)
            {
                if (mat[2][i] == numero)
                {
                oknumcorres = 1;
                i = preE;
                }
            }
            if (oknumcorres == 0)
            printf("Ce numero n'est pas enregistre\n");
        }
     
        return oknumcorres;
    }
     
     
    int main()
    {
        int credit, dureecomsouhaite;
        char numero[30], numerocorres[30];
     
        do 
        {
            printf("Entrer votre numero\n");
            scanf("%s", &numero);
        }
        while (!bonNumero(numero));
     
        do
        {
            printf("Entrer le montant de votre credit\n");
            scanf("%d",&credit);
     
            if (credit < 60)
                printf("Le credit doit etre superieur ou egale a 60\n");
        }
        while (credit < 60);
     
        do
        {
            printf("Entrer le numero du correspondant\n");
            scanf("%s", &numerocorres);
        }
        while (!bonNumero(numerocorres) || !bonNumerocorres(numerocorres));
     
        do
        {
            printf("Entrer la duree de communication souhaitee\n");
            scanf("%d", &dureecomsouhaite);    
        }
        while (dureecomsouhaite < 0);
     
     
     
     
     
        return 0;
    }

  15. #15
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    Ok, on veut bien t'aider.
    Quelle est ta question?
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  16. #16
    Membre expérimenté

    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2009
    Messages
    553
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2009
    Messages : 553
    Points : 1 672
    Points
    1 672
    Par défaut
    Bon alors, allons-y progressivement.

    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
    int bonNumerocorres(char *numerocorres)
    {
        int i, oknumcorres = 0;
        int preO = 5, preT = 5, preE = 5;
        int ind1, ind2, ind3;
        int mat[3][N] ={{772314440, 782314440, 774517070, 784517070, 778868181},
                        {762314440, 764517070, 768868181, 763570521, 765181304}, 
                        {702314440, 704517070, 708868181, 703570521, 705181304}};
        char numero[30];
      
        if (oknumcorres == numero)
            printf("Le numero du correspondant doit etre different de votre numero\n");
    
        ...
        ...
    Plusieurs problèmes avec ce "if":
    - "oknumcorres" vaut zéro, pourquoi tester sa valeur ?
    - "numero" n'est pas initialisé, dans le sens où le contenu de "numero" est indéfini.
    - tu compares un nombre entier et un tableau, ce n'est pas logique

    J'ai l'impression que ce que tu voulais faire, c'est plutôt comparer "numerocorres" avec "numero". Dans ce cas, il ne faut pas utiliser "==" mais une fonction de comparaison, telle que strcmp(). Reste que "numero" n'a pas de valeur déterminée, tu ne l'as pas initialisé.

  17. #17
    Nouveau Candidat au Club Avatar de mad0210
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2016
    Messages : 14
    Points : 0
    Points
    0
    Par défaut
    Mon problème est que j'arrive pas à contrôler le numéro du correspondant que l'utilisateur entrera...............une aide serait la bienvenue

  18. #18
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    un numéro de téléphone, tel que tes messages d'erreurs le disent, vérifie deux propriétés:
    • il fait 10 chiffres de long
    • d'après tes explicatons, il commence par 077 ou 076 ou 070 ou 078


    Tu es parvenu à lire le numéro dans un char[30].
    Il convient donc de vérifier que:
    • il fait bien 10 caractères de long
    • chaque caractère est un chiffre
    • les trois premiers sont compatibles avec 077 ou 076 ou 070 ou 078


    or strlen mesure la longueur, isdigit vérifie qu'un caractère est un chiffre, et a == '0' vérifie que a vaut le caractère 0 (qui ne vaut pas 0, mais 0x30 = 48).

    Je te laisse voire comment l'écrire, mais ton code devrait ressembler à ceci:
    soit candidat la chaine de caractères entrée par l'utilisateur.
    si strlen(candidat) != 10
        raler
        retourner faux
    
    pour chaque caractère c de candidat
        si isdigit(c) est faux
            raler
            retourner faux
    
    si candidat[0] != '0'
    ou candidat[1] != '7'
    ou (candidat[2] n'est pas parmi '7', '6', '0' et '8')
        raler
        retourner faux
    
    retourner vrai
    
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  19. #19
    Nouveau Candidat au Club Avatar de mad0210
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2016
    Messages : 14
    Points : 0
    Points
    0
    Par défaut
    SVP!!! je n'arrive pas à contrôler le numéro du correspondant que l'utilisateur va entrer
    les conditions valides sont :
    1-le numéro du correspondant doit être de celui du numéro d'appel de l'utilisateur
    2-il doit figurer ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     int mat[3][AB] = {{772314440, 782314440, 774517070, 784517070, 778868181},
                          {762314440, 774517070, 768868181, 763570521, 765181304},
                          {762314440, 774517070, 768868181, 763570521, 765181304},    
                         };

  20. #20
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    A la main, comment ferais-tu?
    En vérifiant un à un chaque numéro de l'ensemble (ici une matrice, ce qui est un peu étrange, on s'attendrait plutot à une séquence (liste, tableau 1D) )

    Pour cela, il faut que tu compares un nombre (tel que 772314440) avec une chaine de caractères ("07634567890")
    Cela signifie convertir l'un des deux dans le format de l'autre, et comparer deux objets de ce format.

    Tu as donc deux possibilités: convertir le nombre de la matrice en chaine et convertir la chaine de l'utilisateur en nombre.
    En général, la deuxième solution est préférable pour plusieurs raisons:
    • il suffit de convertir une seule fois la saisie utilisateur, avant l'ensemble des vérifications
    • un nombre est plus léger et plus rapide à comparer qu'une chaine de caractères
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

Discussions similaires

  1. Réponses: 13
    Dernier message: 24/11/2014, 18h20
  2. Tracking des appels téléphoniques
    Par bza88 dans le forum Android
    Réponses: 1
    Dernier message: 18/09/2013, 17h55
  3. [MCD] Gestion des Appels Téléphoniques
    Par Gobelins dans le forum Schéma
    Réponses: 8
    Dernier message: 11/03/2011, 09h55
  4. contrôle des appels récursifs
    Par chlab dans le forum Caml
    Réponses: 3
    Dernier message: 17/02/2011, 21h24
  5. contrôle des appels distants GWT
    Par Wiliam_Walas dans le forum GWT et Vaadin
    Réponses: 1
    Dernier message: 16/04/2008, 08h16

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