Bonsoir à tous !
J'aurais besoin de votre aide sur cet exercice.
Donc premièrement, je demande à l'utilisateur d'introduire des valeurs dans le tableau. Jusque-là, y'a pas de soucis.
Je dois demander à l'utilisateur quelle valeur il souhaite supprimer.
Alors moi j'ai remplacé les positions où ces valeurs s'y retrouvent par les positions du tableau +1.
En gros, si l'utilisateur tape :
6 5 4 3 2 1 0 (0 arrête l'instruction)
Et puis l'utilisateur souhaite supprimer la valeur "5" du tableau.
Il est censé voir l'impression du tableau comme ceci :
6 4 3 2 1
Mais je voulais savoir s'il y avait pas un autre moyen plus optimal que celui-ci.
Nous n'avons le droit d'utiliser que des "if, for, while".
Merci à vous.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 package ex6; import java.util.Scanner; public class Ex6 { public static void main(String[] args) { int valeurlue, i, j, k; int tab[] = new int[50]; i = 0; Scanner lectureClavier = new Scanner(System.in); System.out.println("Introduisez des valeurs entières positives ou négatives !"); System.out.println("Si une valeur nulle est introduite, arrêt prématuré !"); valeurlue = lectureClavier.nextInt(); while ((valeurlue != 0)&&(i<50)) { tab[i] = valeurlue; i = i + 1; if (i<50) { valeurlue = lectureClavier.nextInt(); } } System.out.println("Saisissez une valeur, toutes ses occurrences seront supprimées !"); valeurlue = lectureClavier.nextInt(); if (valeurlue != 0) { for (j=0 ; j<=i-1 ; j++) { while (tab[j] == valeurlue) { for (k=j; k<=i-1 ; k++) { tab[k] = tab[k+1]; } i = i-1; } } } if ((valeurlue == 0)||(compteur == i)) { System.out.println("Le tableau ne comportait pas de valeurs similaires à celle entrée par l'utilisateur !"); } System.out.println("Impression du tableau : "); for (j=0 ; j<=i-1 ; j++) { System.out.println(tab[j]); } } }
Partager