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

[Help] C++ - Algorythme simple.

Pirodactil
Pirodactil
Niveau 6
18 octobre 2012 à 18:17:00

J'ai un problème avec mon algorythme. Je compile mon programme, jusque là tout va bien.

Pour utiliser l'algorythme que j'ai fait, il faut entrer 2 valeurs dans 2 variables différentes.

La fonction est censé m'afficher une valeur mais on dirait qu'il plante. Rien ne s'affiche à part le curseur :

https://image.noelshack.com/fichiers/2012/42/1350576891-sans-titre.png

Oui oui j'utilise Code:Block pour le moment. :-p

main.cpp :

  1. include <iostream>
  2. include "fonction.h"

using namespace std;

int main()
{
int k = 0;
int n = 0;

cin >> k;
cin >> n;

cout << combinaison(k, n) << endl;

return 0;
}

fonction.cpp :

int factorielle(int n)
{
int i = n;
int multiplicateur = 1;

do
{
n = n*multiplicateur;

multiplicateur = multiplicateur + 1;

}while(multiplicateur != i);

return n;
}

int combinaison(int k, int n)
{

int x1 = factorielle(n);
int x2 = factorielle(k);
int x3 = factorielle(n-k);

int c = x2 * x3 / x1;

return c;
}

Ps : Le header n'est pas intéressant. :ok:

Pirodactil
Pirodactil
Niveau 6
18 octobre 2012 à 18:20:03

Petite erreur. C'est

int x4 = x2 * x3;
int c = x4 / x1;

:ok:

Pirodactil
Pirodactil
Niveau 6
18 octobre 2012 à 18:23:31

Arf ...
int c = x1 / x4;

Désolé pour le triple post...

tbop2
tbop2
Niveau 10
18 octobre 2012 à 18:26:12

Bonjour Pirodactil,

Premierement, ca s'ecrit algorithme. Deuxiemement, il va etre difficile de t'aider si tu ne dis meme pas ce que tu comptes faire dans ton programme en fait.... un algorithme ok mais qu'est-il cense faire ?

PS: Pour les prochaines fois poste ton code sur pastebin.com c'est beaucoup plus presentable et facile a corriger :ok:

Pirodactil
Pirodactil
Niveau 6
18 octobre 2012 à 18:44:50

Le but est de trouver le nombre de combinaison différente que l'on peut faire (dans le désordre) pour un nombre d'objet <k> et un nombre d'objet discernable <n>.

Par exemple en binaire 4 bit, k = 4 (4bits) et n = 2 (0 ou 1).

Et le nombre de combinaison différente (dans le désordre) est 16

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

En espérant avoir été assez explicite.

Ps : Je m'aide de cette formule http://www.dcode.fr/generer-calculer-combinaisons

Paulop
Paulop
Niveau 12
18 octobre 2012 à 19:38:11

Boucle infinie, la condition de ton do while est toujours vraie car dans le cas de factorielle(n-k), car ça fait -2, et tu n'atteindras jamais -2 en partant de 1.

Un conseil, n'utilise jamais de do while, ça embrouille.

Pirodactil
Pirodactil
Niveau 6
18 octobre 2012 à 19:42:38

Oui mais le do while a un avantage. La boucle est utilisée au moins une seul fois.

Paulop
Paulop
Niveau 12
18 octobre 2012 à 20:00:18

Dans la grande majorité des cas, un do-while peut être remplacé par un while sans problème. le Dowhile est source de confusion car le test s'effectue après l'instruction, et comme on lit le code et haut en bas...

En plus, j'ai l'impression que tu as écris ton dowhile avant d'écrire son contenu.
Tu peux le remplacer par un for aussi si tu veux.

Pirodactil
Pirodactil
Niveau 6
18 octobre 2012 à 20:03:22

Les for c'est pas mon fort désolé :ok: (Oh ! Le jeu de mots !!)
Et merci pour le tuyau. Je ne savais pas que le Dowhile fonctionnait comme ça.

Pirodactil
Pirodactil
Niveau 6
18 octobre 2012 à 20:15:40

Au mon dieu ! J'ai fais une erreur atroce !! Oublié d'écrire #inclure "header.h" :honte: Je suis idiot!

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