// test2.cpp : Defines the entry point for the console application. // #include "stdafx.h" struct coupleValeur { int a; int b; struct coupleValeur* next; struct coupleValeur* prev; }; void supprimeDoublon(struct coupleValeur* first) { struct coupleValeur *liste = first; while (liste) { struct coupleValeur* it = liste->next; while (it) { if (it->a == liste->b && it->b == liste->a && it->a != it->b) { if (it->prev) { it->prev->next = it->next; it->next->prev = it->prev; } } it = it->next; } liste = liste->next; } } void afficherListe(struct coupleValeur* liste) { while (liste) { std::cout << liste->a << "/" << liste->b << std::endl; liste = liste->next; } } int countEgal(struct coupleValeur* liste) { int ret = 0; while (liste) { if (liste->a == liste->b) ret++; liste = liste->next; } return ret; } int count(struct coupleValeur* liste) { int ret = 0; while (liste) { ret++; liste = liste->next; } return ret; } int main(int argc, char* argv[]) { int valMax = 1; int* valeur; valeur = new int[valMax]; int i = 0; while (i < valMax) { valeur[i]=++i; } struct coupleValeur *listeValeur = 0; struct coupleValeur* current = 0; int ia = 0; int ib = 0; while (ia < valMax) { ib = 0; while (ib < valMax) { struct coupleValeur *elem = new coupleValeur; elem->next = 0; elem->prev = current; elem->a = valeur[ia]; elem->b = valeur[ib]; if (current == 0) { listeValeur = elem; current = elem; } else { current->next = elem; current = current->next; } ib++; } ia++; } supprimeDoublon(listeValeur); //afficherListe(listeValeur); int nbEgal = countEgal(listeValeur); int nb = count(listeValeur); std::cout << "probabilite que a == b est de " << (nbEgal*100)/nb << "%" << std::endl; system("PAUSE"); return 0; }