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

Comparaison tableaux dynamiques C

Pseudo supprimé
Pseudo supprimé 08 février 2019 à 18:16:39

Bonjour !

Je voudrais simuler un jeu de hasard avec un programme en C et je voudrais savoir s'il m'est possible de comparer les données du joueur avec ceux tirée au hasard, en sachant que ces données sont classifié dans un tableau dynamique. Je suis conscient que vous n'allez pas écrire le programme pour moi mais pourriez vous m'orienter franchement dans une direction ?

Un simple :

if(T1[i] != T2[i])
c = 0;
}
if(c == 1)

suffirait il?

spidey15
spidey15
Niveau 13
08 février 2019 à 19:02:36

je pense rajouter un Else c = 1; à la première condition :(

no_lift_69
no_lift_69
Niveau 10
08 février 2019 à 19:38:17

bah poste ton bout de code hein

Pseudo supprimé
Pseudo supprimé 20 février 2019 à 09:50:50

Le but est d'incrementer mon tableau de 1 si au moins un chiffre de mon premier tableau correspond avec un chiffre du deuxième.
Extrait de mon programme, j'ai tenté ça :

int verifier_egalite(int *T1, int *T2, int taille)
{
// On considère le tableau comme égale initialement
int c = 0;
// chaque element rencontré egale à la selection s'incremente au compteur
for (int i = 0; i < taille; ++i)
{
if (T1[i] == T2[i]) {
c++ ;
}
}
return c;
}

int main()
{

compteur = verifier_egalite(nbgen, selection, n);
printf("Compteur : %d", compteur);
}

Mais j'ai toujours ou que mon nombre de tirage egal au compteur... Et de plus mon compteur s'incremente, meme lorsque aucune egalité ne sort.

merci

no_lift_69
no_lift_69
Niveau 10
20 février 2019 à 10:33:15

la ton programme incrémente un compteur pour chaque valeur égale dans ton deuxième tableau.
qu'est ce que tu cherche exactement? donne un exemple peut être

Message édité le 20 février 2019 à 10:34:15 par no_lift_69
Pseudo supprimé
Pseudo supprimé 20 février 2019 à 12:08:16

Je me suis mal expliqué et ce que je cherche c'est verifier si un des numero de ma selection du début (tableau 1) figure dans mon tableau de tirage (tableau 2), je dois tout refaire je pense car je suis pas allé dans la bonne direction. Je vais devoir trier, puis faire une recherche dichotomique.

Comme je faisais là, chaque case de chacun des tableaux de ne comparaient pas avec les autres mais tableau1[1] se comparaient avec tableau2[1] et pas avec tableau2[2] pour illustrer...

Si vous avez d'autres propositions de solution je suis preneur.

no_lift_69
no_lift_69
Niveau 10
20 février 2019 à 12:49:09

Le 20 février 2019 à 12:08:16 zenvice a écrit :
Je me suis mal expliqué et ce que je cherche c'est verifier si un des numero de ma selection du début (tableau 1) figure dans mon tableau de tirage (tableau 2), je dois tout refaire je pense car je suis pas allé dans la bonne direction. Je vais devoir trier, puis faire une recherche dichotomique.

Comme je faisais là, chaque case de chacun des tableaux de ne comparaient pas avec les autres mais tableau1[1] se comparaient avec tableau2[1] et pas avec tableau2[2] pour illustrer...

Si vous avez d'autres propositions de solution je suis preneur.

oui j'ai compris ça donne ça:

int verifier_egalite(int *T1, int *T2, int taille)
{
	int c = 0;

	for (int i = 0; i < taille; ++i)
	{
		for (int j = 0; j < taille; ++j)
		{
			if (T1[i] == T2[j]) {
				// valeur de T1  existe dans T2
				c++;
			}
		}
	}
	return c;
}

après il doit y avoir moyen d'optimiser surement mais bon

Message édité le 20 février 2019 à 12:49:38 par no_lift_69
Thomas97
Thomas97
Niveau 10
20 février 2019 à 18:59:06

Si tu tries tes tableaux avec avec un algorithme efficace du style tri fusion, tu as moyen d'optimiser ton code en complexité O(n log n). Après tout dépend du nombre de valeurs à traiter et de ce que tu veux en faire.

godrik
godrik
Niveau 30
20 février 2019 à 20:42:22

En vrai, trier est probablement la mauvaise facon de faire ca. C'est un cas typique d'utilisation de table de hashage.

Mais probablement tout ca est trop complique pour OP, qui cherchait probablement une solution en deux boucles.

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