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

Aide, tri par sélection C#

-dhev
-dhev
Niveau 32
22 octobre 2016 à 19:26:22

:salut:
Je voudrais trier par ordre croissant des chiffres qui sont dans un tableau, je me suis renseigner et j'ai essayé de faire un programme avec ce que j'ai compris, mais ça ne marche pas:

voici mon code :d) http://pastebin.com/Qk7j6FpF

et voici ce que j'obtiens dans le terminal :d) https://image.noelshack.com/fichiers/2016/42/1477157047-9c15c330b42.png

si quelqu'un peut me dire ce qu'il ne va pas :(

merci.

Pseudo supprimé
Pseudo supprimé 22 octobre 2016 à 19:47:34

Tu dis tri en c#, pourtant ton code c'est du C

int main( int argc, char const *argv[ ] )
{

	int t[ 10 ] = { 2,2,4,6,1,2,0,9,4,7 };
	int taille = 10;
	int actual = 9;
	int indice;
	int temp;
	int max;
	int max_indice;
	int i;


	while ( actual >= 0 )
	{
		max_indice = taille - ( taille - actual );

		max = 0;
		for ( i = 0; i < max_indice; ++i )
		{
			if ( t[ i ] > max )
			{
				max = t[ i ];
				indice = i;
			}
		}

		temp = t[ actual ];
		t[ actual ] = t[ indice ];
		t[ indice ] = temp;
		actual--;	
	}

	for ( i = 0; i < 10; ++i )
	{
		printf( "%d\n", t[ i ] );
	}

	return 0;
}

Si tu comprends pas demande moi et je t'explique

-dhev
-dhev
Niveau 32
22 octobre 2016 à 21:29:51

au temps pour moi :hap:, je pensais qu'on utiliser le # pour dire qu'on parle d'un langage de programmation mais enfaite c'est deux langage différent.
Merci beaucoup, j'ai essayé et ça marche mais j'ai pas tout compris :hap:
Tu peut me dire à quoi sert chaque variable ?

Pseudo supprimé
Pseudo supprimé 22 octobre 2016 à 21:56:07

Haha pas de soucis :)

En fait j'ai pas super bien organisé le code et les variables.

En gros ce que je fais, c'est que je cherche le max de 0 à actual . (actuel me permet de savoir jusqu'a quel indice on ordonne, après on remplace le max avec actual.
Le but est de mettre le max à la fin à chaque fois. (sauf que la fin n'est pas la même à chaque fois d'ou la variable actual)

max_indice est juste une énorme boulette inutile, ca revient à actual en fait :hap:

temp me permet déchanger deux cases, car vu que j'en écris une, j'ai besoin de sauvegarder sa valeur.

-dhev
-dhev
Niveau 32
22 octobre 2016 à 22:26:51

Ok merci, je vois un peu près comment ça marche :hap:

De mon coté j'ai essayé d'ajouter une fonction qui permet d'entré les valeurs du tableau mais comme à chaque fois que j’essaye un truc, ça marche pas :hap:

int main( int argc, char const *argv[ ] )
{

    int t[10];
    int taille = 10;
    int actual = 9;
    int indice;
    int temp;
    int max;
    int i;
    
    for ( i = 0; i < 10; ++i)
		{
			printf("valeur %d:\n",i);
			scanf("%d\n", &t[i]);
					
		}


    while ( actual >= 0 )
    {
        actual = taille - ( taille - actual );

        max = 0;
        for ( i = 0; i < actual; ++i )
        {
            if ( t[ i ] > max )
            {
                max = t[ i ];
                indice = i;
            }
        }

        temp = t[ actual ];
        t[ actual ] = t[ indice ];
        t[ indice ] = temp;
        actual--;   
    }
    printf( "---------------------------------------------------------------------\n");
    for ( i = 0; i < 10; ++i )
    {
        printf( "%d\n", t[ i ] );
    }

    return 0;
}

ça me propose deux fois de saisir la première valeur du tableau :d) https://image.noelshack.com/fichiers/2016/42/1477168006-5f8110b9982.png

Pseudo supprimé
Pseudo supprimé 22 octobre 2016 à 22:49:24

enleve cette ligne : actual = taille - ( taille - actual );
ca revient à actual = taille - taille + actual; soit actual = actual :hap:

faut pas mettre \n dans le scanf

ce qui nous donne :

j'ai corrigé une erreur avec le for je pense

int main( int argc, char const *argv[ ] )
{
	//taille du tableau
	const int taille = 10;

	//Tableau
	int t[ taille ];

	//jusqu'a quel indice on rodonne
	int actual = 9;

	// valeur temporaire pour echanger deux cases
	int temp;
	//la valeur max du tableau
	int max;
	// indice de la valeur max du tableau
	int indice;

	//i pour iterate
	int i;

	for ( i = 0; i < taille; ++i )
	{
		printf( "valeur %d:\n", i );
		scanf_s( "%d", &t[ i ] );
	}

	while ( actual >= 0 )
	{
		max = 0;
		for ( i = 0; i < actual + 1; ++i )
		{
			if ( t[ i ] > max )
			{
				max = t[ i ];
				indice = i;
			}
		}

		temp = t[ actual ];
		t[ actual ] = t[ indice ];
		t[ indice ] = temp;
		actual--;
	}


	printf( "---------------------------------------------------------------------\n" );

	for ( i = 0; i < 10; ++i )
	{
		printf( "%d\n", t[ i ] );
	}

	return 0;
}
Message édité le 22 octobre 2016 à 22:53:48 par Pseudo supprimé
-dhev
-dhev
Niveau 32
22 octobre 2016 à 23:10:43

Encore une erreur de merde :hap:
en tout cas merci beaucoup :ok:
dernière question, les erreurs après la compilation sont normale ou pas?

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