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

Ce code fonctionne ?

samerelasalade
samerelasalade
Niveau 1
04 juillet 2019 à 21:42:07

Bonjour, ce code pourrait fonctionner en expression ternaire ?

return (printf(chiffre % 2 == 0) ? "est pair" : "est impair");

Je débute en C donc peut être que je m'y prends mal, merci de votre aide :)

jiaheng
jiaheng
Niveau 6
04 juillet 2019 à 22:50:58

ça compile mais ça fera pas ce que tu penses :hap:
printf retourne le nombre de caractères qu'il affiche.

Je pense que ce que tu voulais faire était :

char[] result = (chiffre % 2 == 0) ? "est pair" : "est impair"
printf(result);
return result;

Explications :
dans ton example, tu dis à ton programme dans l'ordre de :
- afficher le résultat de (chiffre % 2 == 0)
- si la valeur retournée par printf est l'équivalent booléen de TRUE alors tu retournes "est pair" (donc tout ce qui est différent de 0)
- sinon tu retournes "est impair"

Tes erreurs :
dans une ternaire tout comme dans un if, c'est la condition qui est évaluée en première.
Tu ne peux pas afficher et retourner la même valeur en même temps.
Tu confonds ce qui est exécuté dans la ternaire, je pense que tu voulais dire :
chiffre % 2 == 0 ? printf("est pair") : printf("est impair") ce qui est équivalent à printf((chiffre % 2 == 0) ? "est pair" : "est impair")
l'évaluation de ta ternaire va te donner une chaine de caractère que tu peux utiliser comme argument pour printf

Message édité le 04 juillet 2019 à 22:54:11 par jiaheng
Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment