実行時に配列を通過して0.0のすべてのインスタンスを削除し、配列のサイズをゼロ以外の要素の数と同じに変更してそれらを配置するプログラムを作成しようとしています前の順序の要素。 1れる最初Javaは配列からゼロを取り除きます
0.0, 1.2, 0.0, 0.0, 0.0, 2.3, 0.0, 9.7, 5.6, 0.0
、コードの実行後に内容が
n=4, a[0]=1.2, a[1]=2.3, a[2]=9.7, and a[3]=5.6.
これでなければならない - それは、n場合= 10 [J]の内容、J = 0 Nには、ありますこれまで私が持っていたものです:
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]);
}
}
}
正しい方向にちょっとしたナッジがあります。
*咳*考慮ArrayList *咳*この場合は、 、おそらく。 (また、 "使用された配列変数"をインクリメントしないでください。追加するときを除いて、 "非0"データの量を知っているか、反復中に最初に見つかった "0"を "有用なデータの終わり"として扱います。 ) –
これは、double値を持つ配列aが既に存在し、既に充填された配列を通過し、0.0のすべてのインスタンスを削除するコードスニペットを実行する必要がある他の数字は同じ順番に保つ。 – Mike