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

Petit probleme code java ^^

Eleck4
Eleck4
Niveau 9
14 juin 2015 à 15:17:52

Salut a tous on ma demander de faire un programme sous java pour classer des scores, je viens de le terminer, mais je me rend compte qu'il comporte quelque petit problème que je n'arrive pas a résoudre. Le voici:

import jpb.*;
public class Project6P217 {
public static void main(String[] args) {
int[] deciles;
deciles = new int[0];
int[] scores;
scores = new int[0];
SimpleIO.prompt("Please enter a score ");
String userInput = SimpleIO.readLine();
for(int i = 0; i < deciles.length - 1; ++i)
deciles[i] = " " + (i * 1) + "-" + (i * 10 + 9);
deciles[0] = "0-9";
deciles[1] = "10-19";
deciles[2] = "20-29";
deciles[3] = "30-39";
deciles[4] = "40-49";
deciles[5] = "50-59";
deciles[6] = "60-69";
deciles[7] = "70-79";
deciles[8] = "80-89";
deciles[9] = "90-100";

scores[0];
scores[1];
scores[2];
scores[3];
scores[4];
scores[5];
scores[6];
scores[7];
scores[8];
scores[9];

int[] input = new int[5]; // input here, not where it is now
for(int i=0; i<5; ++i) {
if(input[i] >= 90) ++scores[9];
else
if(input[i] >= 80) ++scores[8];
//(etc)
}
}
}

Blaugrananounet
Blaugrananounet
Niveau 30
14 juin 2015 à 15:43:26

Quel est le problème que tu as ?

Y'a plusieurs truc bizarre que je constate : affectation de chaines à un tableau d'entiers, scores[i]; correspond a rien, SimpleIO ?

Message édité le 14 juin 2015 à 15:46:19 par Blaugrananounet
Eleck4
Eleck4
Niveau 9
14 juin 2015 à 15:57:10

SimpleIo, c'est juste pour afficher un message, et le readline pour capturer les données entrer

Blaugrananounet
Blaugrananounet
Niveau 30
14 juin 2015 à 15:59:13

Oui sa j'ai plus ou moins deviner, mais l'utilisation de tes deux tableau reste obscur

Eleck4
Eleck4
Niveau 9
14 juin 2015 à 16:30:36

Je penses aussi que le problème vient de là, mais j'arrive pas a savoir qu'elle est ce problème

Blaugrananounet
Blaugrananounet
Niveau 30
14 juin 2015 à 16:33:22

Que doivent contenir les tableaux deciles et scores concrètement ?

A quoi servent-ils ?

TheRealMarco
TheRealMarco
Niveau 13
14 juin 2015 à 16:49:53

Tu peux décrire l'erreur que tu as eu ?

Eleck4
Eleck4
Niveau 9
14 juin 2015 à 17:28:15

Le decile doit contenir des nombre de 0-09 10-19 et ainsi de suite pour atteindre 90-100, et je dois montrer le scores dans chaque decile

Bunyan
Bunyan
Niveau 17
14 juin 2015 à 19:29:23

Quand tu demandes de l'aide, prend l'habitude de décrire ton problème. Tu ne l'as toujours pas donné. Nous savons juste que tu as "des erreurs", mais ne connaissons pas leur teneur. Nous ne savons pas non plus ce que tu tentes de faire.

deciles = new int[0];

-> déclaration d'un tableau de 0 entier. Les tableaux étant immutables en Java, tu dois avoir une belle exception lorsque tu tentes de t'en servir.

for(int i = 0; i < deciles.length - 1; ++i)
deciles[i] = " " + (i * 1) + "-" + (i * 10 + 9); 

-> Il manque l'accolade ouvrante du for, ce qui fait que seule la première instruction est bouclée.

scores[0];
scores[1];
scores[2];
scores[3];
scores[4];
scores[5];
scores[6];
scores[7];
scores[8];
scores[9];

Ne sert strictement à rien et ne devrait pas compiler.

int[] input = new int[5]; // input here, not where it is now
for(int i=0; i<5; ++i) {
if(input[i] >= 90) ++scores[9];
else
if(input[i] >= 80) ++scores[8];
//(etc)

-> Utilisation de "input" sans qu'une seule valeur ne lui ait été affectée (ça ne devrait pas compiler non plus)
-> manque les accolades pour les branches
-> pré-incrémentation d'une valeur d'un tableau, je ne suis même pas sur du comportement ici. Soit c'est une pré-incrémentation qui se perd dans le néant (ce qui me paraît le plus probable), soit la valeur contenue scores à l'indice correspond est bien incrémentée (possible, mais me paraît improbable).

Que signifie "classer des scores" ?
Si ça équivaut à dire "un utilisateur rentre des valeurs entières et il faut ensuite les afficher par ordre croissant", utilise une Collection (je te laisse chercher laquelle) avec ensuite un appel à la méthode "sort" pour l'ordre naturel (soit un ordre croissant).

Le decile doit contenir des nombre de 0-09 10-19 et ainsi de suite pour atteindre 90-100, et je dois montrer le scores dans chaque decile

Si c'est ça, une simple boucle allant de 0 à 100 avec un formatage pour l'affichage, et c'est terminé.

Message édité le 14 juin 2015 à 19:30:12 par Bunyan
TheRealMarco
TheRealMarco
Niveau 13
14 juin 2015 à 19:42:08

Quand tu fais :
deciles[9] = "90-100";
Tu ne mets pas un nombre, mais une chaîne de caractère (string).
Tu pourrais faire un tableau en deux dimensions, la première pour indiquer la valeur max, la deuxième, pour indiquer la valeur minimum.
deciles[9][0] = 90;
deciles[9][1] = 100;

Je comprends pas trop ce que tu veux faire de toute manière...

Ton tableau input n'est jamais renseigné, les valeurs sont toujours vides, alors que tu les compare.
Le logiciel que tu utilises pour compiler ne dit pas où sont les erreurs et une brève explication ? Celà peut nous permettre de mieux t'orienter pour t'aider.

TheRealMarco
TheRealMarco
Niveau 13
14 juin 2015 à 19:47:50

PS : J'ai essayé de t'aider un peu : http://piratepad.net/WdIRxqWvSd

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