0
私は大学のプロジェクトに取り組んでいます。私の問題は、ユーザソリューションを提供し、それが良いかどうかをチェックする能力を持つn方程式システムソルバを持つことです。ソリューションチェックのコードは次のとおりです。2つの同じ番号はダブルジャンクで同じではありません
public void printSolution(double[] sol) {
System.out.println();
System.out.println("Write 1 if you want to show solution or write 2 if you want to solve equations");
Scanner riesenie = new Scanner(System.in);
int r = riesenie.nextInt();
int N = sol.length;
switch (r) {
case 1:
System.out.println("----------------------------------------");
System.out.println("Solution is:");
for (int i = 0; i < N; i++) {
System.out.printf("%.2f ", sol[i]);
}
System.out.println();
break;
case 2:
System.out.println("Write your solution");
Scanner vysledok = new Scanner(System.in);
double[] v = new double[N];
for (int i = 0; i < N; i++) {
v[i] = vysledok.nextDouble();
}
for (int i = 0; i < N; i++) {
if (v[i] == (sol[i])) {
System.out.println("Your solution is right !");
System.out.println();
}
else {
System.out.println("Your solution is not right, solution is:");
for (i = 0; i < N; i++) {
System.out.printf("%.2f ", sol[i]);
System.out.println();
}
}
}
break;
default:
System.out.println("Number out of range");
System.out.println();
}
出力に問題があります。私は出力画像を追加しています。
私たちはBlueJの中でコーディングする必要があると付け加えています。手伝ってくれてありがとう。
ダブルスは比較しないでください。これは、doubleの2つの異なる値が同じバイナリ表現を持つためです。 Javaの実装方法はIEEE-754を参照してください。しかし、わかりません。 – user902384
ヒント。あなたのコードは読みにくいです。すべてのものを1つのスイッチに入れてはいけません。代わりに、それぞれが1つのことを行う小さなヘルパーメソッドをたくさん作成します。それらを一緒に使用します。 – GhostCat