J'essaye d'écrire un programme qui, lorsqu'il sera exécuté, passera par un tableau et supprimera toutes les instances de 0.0 et changera la taille du tableau égal au nombre d'éléments non nuls et les mettra éléments dans leur ordre précédent. Autrement dit, si n = 10 et le contenu d'un [j], j = 0 à n - 1 sont d'abordJava en supprimant les zéros du tableau
0.0, 1.2, 0.0, 0.0, 0.0, 2.3, 0.0, 9.7, 5.6, 0.0
puis après l'exécution du code le contenu doit être
n=4, a[0]=1.2, a[1]=2.3, a[2]=9.7, and a[3]=5.6.
Cette est ce que j'ai jusqu'ici:
import java.util.Scanner;
public class hw2
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
final double KEY = 0.0;
int n = scan.nextInt();
double[] a = new double[n];
for(int i=0; i<n; i++)
{
a[i] = scan.nextDouble();
}
for(int k = 0; k<n; k++)
{
if(a[k] == KEY)
{
a[k] = a[k+1];
n--;
}
System.out.println(a[k]);
}
}
}
Juste un petit coup de pouce dans la bonne direction serait apprécié.
* toux * Considérer ArrayList * toux * Bien que dans ce cas, vous pouvez simplement * pas enregistrer * la valeur si c'est "0" , peut-être . (Ne pas non plus incrémenter la "variable tableau utilisée", sauf si vous ajoutez, donc vous savez combien contient des données "non 0" ou traiter le premier "0" rencontré pendant l'itération comme "fin des données utiles" - les tableaux sont initialisé avec la valeur par défaut du type.) –
Eh bien, il est basé sur s'il y a déjà un tableau nommé avec des valeurs doubles et que vous devez exécuter un extrait de code qui passera par le tableau déjà rempli et supprimera toutes les instances de 0.0 garder les autres numéros dans le même ordre. – Mike