CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C] Erreur dans mon code (débutant)

[Vicki]
[Vicki]
Niveau 10
20 mars 2015 à 23:41:07

Salut à tous,

je débute la programmation en suivant le cours sur le langage C d'Openclassroom, ducoup j'suis arriver à la partie sur les boucles, et j'ai essayer un petit programme pour voir si je maitrise le truc, sauf que j'vois pas où est mon erreur.

Je tape quelque chose, 1 par exemple, et ça me marque "nomdemonprogramme.exe a cessé de fonctionner". Quelqu'un pourrais m'aider ? Merci :)

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int nb_noix = 0;
    int nb_manquantes = 0;
    int choix = 0;

    printf("He salut jeune padawan, pourrais tu aller me chercher 54 noix dans la foret? \nTape 1 si tu veux bien m'aider\n\n");
    scanf("%d", choix);

    printf("\n");

    if(choix == 1)
        printf("Super, merci je t'attends !");
    else
        printf("Va t'en !!!");

    printf("\n");

    while(nb_noix < 54)

        nb_manquantes=54-nb_noix;
        printf("Merci, mais il m'en faut encore %d", nb_manquantes);
        nb_noix++;

    return 0;

}

Bon j'ai rien trouver de mieux pour m'entrainer :hap: + comment je pourrais demander à l'utilisateur de taper un nom au lieu d'un nombre ? Merci :-)

Schiffer
Schiffer
Niveau 10
20 mars 2015 à 23:45:30

Vérifie ton scanf
Ton while manque d'accolades

Pseudo supprimé
Pseudo supprimé 20 mars 2015 à 23:49:17

Tu as oublié les accolades pour le while et le & devant choix dans scanf

[Vicki]
[Vicki]
Niveau 10
20 mars 2015 à 23:56:13

Merci à vous 2 !
Mais lorsque je rentre un autre chiffre que 1, le "va t'en" s'affiche bien, mais la boucle while est quand même exécutée, comment faire pour que ce ne soit pas le cas ?

+ comment je pourrais demander à l'utilisateur de taper un nom au lieu d'un nombre ?
Par exemple pour dire "taper oui si vous êtes partant", et la l’utilisateur tape "oui"..
Merci :-)

AZIR2015
AZIR2015
Niveau 7
21 mars 2015 à 00:09:45

scanf est un pointeur. Pour qu'il modifie la valeur de ta variable il doit recevoir son adresse. Les accolades du while sont aussi nécessaires ( sauf s'il n'y a qu'une seule instruction dans toute la boucle :) )

[Vicki]
[Vicki]
Niveau 10
21 mars 2015 à 00:20:09

Ouais du coup ça donne ça :

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int nb_noix = 0;
    int nb_manquantes = 0;
    int choix = 0;

    printf("He salut jeune padawan, pourrais tu aller me chercher 54 noix dans la foret? \nTape 1 si tu veux bien m'aider\n\n");
    scanf("%d", &choix);

    printf("\n");

    if(choix == 1)
        printf("Super, merci je t'attends !");
    else
        printf("Va t'en !!!\n\n");

    printf("\n");

    while(nb_noix < 54)
    {
        nb_manquantes=54-nb_noix;
        printf("Merci, mais il m'en faut encore %d\n", nb_manquantes);
        nb_noix++;
    }

printf("Le compte est bon, parfait, merci !");

    return 0;

}

mais est ce que quelqu'un saurait répondre à mes questions qui sont juste au dessus de ce message ? :)

Cieldara
Cieldara
Niveau 10
21 mars 2015 à 09:06:50

Pour que ta boucle while ne soit éxécutée que dans le cas ou tu mets 1, tu dois la mettre apres la vérification (choix == 1) oublie pas de mettre des accolades sur ce if du coup

[Vicki]
[Vicki]
Niveau 10
21 mars 2015 à 16:35:03

Parfait, merci, vous avez réglé mes problèmes :)

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment