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

Visual C++ Discussion :

Arret de la compilation


Sujet :

Visual C++

  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Arret de la compilation
    slt,
    Chère développeurs suis 1 débutant en programmation j utilise (« visuel studio 6 »)
    Lors de compilation sa bloque toujours en affichant ce message au dessous :

    --------------------Configuration: e - Win32 Debug--------------------
    Compiling...
    e.c
    c:\documents and settings\administrateur\e.c(5) : warning C4305: 'initializing' : truncation from 'const double ' to 'const float '
    c:\documents and settings\administrateur\e.c(5) : warning C4305: 'initializing' : truncation from 'const double ' to 'const float '
    C pour ce code source :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include <stdio.h>
    void main()
    {
    float Nex, Ncc, moy ;
    const float cofex=0.8, cofcc=0.2;
     
    printf("donnez la note de l'examen:");scanf("%f",&Nex);
    printf("donnez la note de du contole continu:");scanf("%f",&Ncc); 
    moy= (Nex*cofex)+(Ncc*cofcc);
    printf("la moyenne de l'étudiant %f:");
    printf("%d",moy);
    }
    Et parfois sa bloque en exécution
    En affichant

    Linking …..

    Aide S.V.P !!!!!
    C mon msn : mkachakhfedam@hotmail.com


  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Salut et bienvenue sur les forums de developpez.com


    Bon moi je n'est pas Visual Studio mais Code::Blocks, voici ce que j'obtiens:
    Compiling: main.c
    main.c: In function `main':
    main.c:11: warning: too few arguments for format
    main.c:12: warning: int format, double arg (arg 2)
    main.c:13: warning: control reaches end of non-void function
    Linking console executable: C:\Documents and Settings\Franck\Mes documents\Sauvegardes\C\test\console.exe
    Process terminated with status 0 (0 minutes, 0 seconds)
    0 errors, 3 warnings
    Ce qu'on peut en dire:
    • main retourne toujours un entier !
    • il te manque un argument à passer à ton printf affichant la moyenne d'un étudiant



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    printf("la moyenne de l'étudiant %f:");
    printf("%d",moy);
    Je suppose que tu voulais plutôt écrire ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    printf("la moyenne de l'étudiant : %f", moy);
    A savoir que dans ta version du code, ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    printf("%d",moy);
    tu t'est trompé dans le format %d, ici c'est pour des entiers or tu utilise des réels donc %f !


    Ton code corrigé:
    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
     
    #include <stdio.h>
     
    int main (void)
    {
       float Nex, Ncc, moy = 0.0;
       const float cofex=0.8, cofcc=0.2;
     
     
       printf("donnez la note de l'examen:");
       scanf("%f",&Nex);
       printf("donnez la note de du contole continu:");
       scanf("%f",&Ncc);
     
       moy = (Nex*cofex)+(Ncc*cofcc);
     
       printf("la moyenne de l'étudiant : %f", moy);
     
     
       return 0;
    }

    Un conseil, utilise les balise Code pour afficher des morceaux de code et les balises Quote pour les log de compilation et sortie console. Aussi, évite les mots raccourcis donc pas de langages SMS puis met un titre plus explicit pour ton post la prochaine fois !

  3. #3
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    Citation Envoyé par Einstein17
    c:\documents and settings\administrateur\e.c(5) : warning C4305: 'initializing' : truncation from 'const double ' to 'const float '
    c:\documents and settings\administrateur\e.c(5) : warning C4305: 'initializing' : truncation from 'const double ' to 'const float '
    Eh bien, il est configuré en mode paranoïaque, ton compilateur !
    Le truc est que les constantes flottantes, comme tes 0.8 et 0.2, sont de type double en C. Ici, tu les assignes à des variables de type float. Du coup, le compilateur se plaint.
    Tu peux lui fermer le clapet en faisant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    const float cofex=0.8f, cofcc=0.2f;
    qui fait bien une assignation float vers float. Ce n'est de toute facon pas un warning tres grave.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 41
    Points : 31
    Points
    31
    Par défaut
    pourquoi ne pas utiliser des constantes preprocesseur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #define COFEX 0.8
    #define COFCC 0.2

    Ou alors utiliser des double et const double, parce que le type float c'est dépassé non?

  5. #5
    Candidat au Club
    Inscrit en
    Septembre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    merci Franck.H
    Mon problème c’est pas le code c’est juste 1 exemple …
    Même on tapant ton code
    Voici ce que j'obtiens:
    Citation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    --------------------Configuration: elyes - Win32 Debug--------------------
    Linking...
    et rien ne se produit!

  6. #6
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par DaZumba
    Tu peux lui fermer le clapet en faisant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    const float cofex=0.8f, cofcc=0.2f;
    qui fait bien une assignation float vers float. Ce n'est de toute facon pas un warning tres grave.
    Ou en utilisant des doubles, ce qui est plus indiqué pour les calculs (meilleure précision, moins de conversions...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    const double cofex=0.8, cofcc=0.2;

  7. #7
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Einstein17
    Voici ce que j'obtiens:
    Citation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    --------------------Configuration: elyes - Win32 Debug--------------------
    Linking...
    et rien ne se produit!
    Problème d'outil. Le bon forum est http://www.developpez.net/forums/forumdisplay.php?f=29

  8. #8
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par 0v3rb1t
    Ou alors utiliser des double et const double, parce que le type float c'est dépassé non?
    C'est pas dépassé, c'est inadapté au problème posé qui met en oeuvre de calculs.

    Voir ma réponse à Dazumba

Discussions similaires

  1. [Compilation] Echec de la compilation et arret de VS2010
    Par OctaveSouley'41 dans le forum Visual Studio
    Réponses: 0
    Dernier message: 21/09/2013, 16h11
  2. comment on arrete une compilation
    Par Invité dans le forum Visual C++
    Réponses: 2
    Dernier message: 20/12/2011, 15h19
  3. VC 6.0 : Arret de la compilation au niveau du "Linking"
    Par damdam78 dans le forum Visual C++
    Réponses: 0
    Dernier message: 05/05/2009, 10h29
  4. [C::B] Dès 1ere erreur, arreter de compiler?
    Par Sacha999 dans le forum Code::Blocks
    Réponses: 2
    Dernier message: 28/10/2008, 21h46
  5. Arrêter une compilation
    Par pierrecarray dans le forum MATLAB
    Réponses: 2
    Dernier message: 28/06/2007, 11h33

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