int points[4] = {0, 0, 0, 0u}, resultats[4] = {0}, i, j;
/* Ici, je vais comparer chaque valeur avec toutes les autres, y
compris elle-même, et la valeur la plus grande (ou celle testée en cas
d'égalité) prendra un point en plus dans le tableau points, dans lequel chaque case correspond
à la "même" case du tableau de base. Ainsi, chaque valeur a une note, un nombre de points
qui lui correspond et qui dépend des autres valeurs. */
for (i = 0; i < 4; i++)
{
for (j = 0; i < 4; i++)
{
if (tableau[i] >= tableau[j])
{
points[i] = points[i]+1;
}
else
{
points[j] = points[j]+1;
}
}
}
for (i = 0; i < 4; i++);
{
/* Etant donné que chaque valeur s'est comparée à elle-même et a donc eu un point en trop, j'enlève 1 à chaque note.
Etant donnée aussi que chaque valeur a été comparée 2 fois avec chacune des autres (la 1 s'est comparée à la 3, puis un
peu plus tard la 3 s'est comparée à la 1), je divise chaque note par 2. Maintenant, chaque valeur possède
dans le tableau points une note correspondant a sa place parmi les autres valeurs (ici 0,1,2 ou 3) */
points[i] = (points [i] -1) / 2;
/* Toute la partie difficile de mon programme si situe ici : avec le travail fait en amont, chaque valeur possède dans
un autre tableau sa place parmi les autres valeurs. Je cais donc récupérer chaque note (qui correspond maintenant à la place
de la valeur) et mettre la valeur en question dans un autre tableau, dans la case correspondant à sa place.
Ainsi, si les valeurs étaient 2,1,4,3, le tableau points dira : 1,0,3,2. le tableau resultats va donc placer le 2 dans la case 1 (car c'est la note du 2),
le 1 dans la case 0, le 4 dans la case 3 et le 3 dans la case 2. */
j = points[i];
resultats[i] = tableau[j];
printf("%d\n", resultats[i]);
}
}
/ J'espère que vous avez compris le fonctionnement de mon programme, même si c'est un peu tordu. je ne comprends pas ou est le problème car la console
cesse de fonctionner après que j'ai entré mes valeurs. Merci de votre lecture et de votre éventuelle aide /
Je suis désole pour la mise en page de ma question, je n'arrive pas à envoyer mon programme comme le font tous les autres... et il n'y a ici que la fonction principale, mais il n'y a que celle-là qui nous intéresse car le problème vient de là (la fonction main ne sert dans ce programme qu'à lire les valeurs du tableau qui sera ensuite classé)
Peux-tu essayer de nous expliquer ce que dois effectuer ta fonction ? Doit-elle simplement trier le tableau ? (dans ce cas tu peux surement faire plus simple). Si ton but est d'utiliser une technique particulière, dis-le nous aussi. Enfin, quelle taille fait ton tableau (4 je suppose), et que contient-il (ou doit-il contenir) ?
J'aime les bandes dessinées, manhuas, manhwas, mangas, comics... Du coup j'ai fait aralosbd.fr !
> la console cesse de fonctionner après que j'ai entré mes valeurs. Merci de votre lecture et de votre éventuelle aide /
Le problème se situe après la saisie des valeurs, donc peut-être dans le main, peut-être même au niveau de la dernière saisie, tu ne peux pas exclure cette hypothèse !
> Je suis désole pour la mise en page de ma question, je n'arrive pas à envoyer mon programme comme le font tous les autres
Pour ça, il faut sélectionner l'éditeur « Éditeur » et non pas l'éditeur « Markdown ». C'est lui qui possède les options décrites dans le message épinglé à lire absolument.
Smiley32 a écrit: Peux-tu essayer de nous expliquer ce que dois effectuer ta fonction ? Doit-elle simplement trier le tableau
>
Bonjour,
oui la fonction doit simplement trier le tableau, mais j'ai trouvé ma façon de faire assez synthétique et j'aimerais bien arriver à la faire fonctionner...
Elle doit simplement remettre les valeurs dans l'ordre croissant, mais j'ai utilisé pour ça trois tableaux: celui avec les valeurs de base, celui qui assigne a chaque position dans le 1er tableau sa place parmi les autres valeurs (grâce à un système de comptage dont je ne suis pas peu fier) et un dernier tableau allant chercher des informations dans les deux premiers pour contenir les valeurs dans le bon ordre... (j'espère avoir été clair)
Et mon tableau ne contient que quelques (4) valeurs que j'entre au début, mais en théorie mon programme fonctionne pour autant de valeur que je veux (c'est la son avantage) pour peu que je modifie certaines valeurs dans les boucles for
edgarjacobs a écrit: A tout hasard, n'as-tu pas oublié de donner l'adresse des variables numérique à scanf() ?
>
Ne t'inquiète pas, j'ai vérifié ça plusieurs fois
robun a écrit: Pour ça, il faut sélectionner l'éditeur « Éditeur » et non pas l'éditeur « Markdown ». C'est lui qui possède les options décrites dans le message épinglé à lire absolument.
dans 24h, dès que je pourrais poster a nouveau, je vous enverrai mon programmes en entier, que vous y voyez un peu plus clair... (je ne peux pas transformer un post existant en "editeur")
Smiley32 a écrit:Par contre tu as un ';' à la fin de la ligne du troisième for, ce qui ne doit pas être prévu
> Woaw bravo, et merci beaucoup... elle ne fonctionne en effet pas du tout mais ne t'inquiète pas je vais revoir tout ça et le faire fonctionner mais merci beaucoup en tout cas!
J'aime les bandes dessinées, manhuas, manhwas, mangas, comics... Du coup j'ai fait aralosbd.fr !
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
J'aime les bandes dessinées, manhuas, manhwas, mangas, comics... Du coup j'ai fait aralosbd.fr !