我需要在我的 Transpose Java 程序中使用 double() 并使用扫描仪
I need to use double() in my Transpose Java program and use scanner as well
我正在尝试编写一个程序,首先输入转置大小 (n X n),然后输入矩阵元素,但我需要元素为双精度而不是整数,并且我不断收到错误消息(我应该将 double 替换为 int)。
请问我该如何解决?我是 Java 的新手。
非常感谢
这是我的代码:
import java.util.Scanner;
public class transpose_test {
public static void main(String args[]) {
int tra_size;
Scanner sc=new Scanner(System.in);
System.out.print("What size does the transpose have (n X n): ");
tra_size=sc.nextInt();
int a[][]=new int[tra_size][tra_size];
System.out.println("Input the elements of matrix (a):");
for(double i=0; i<tra_size; i++) {
for(double j=0; j<tra_size; j++) {
System.out.print("a [" + (i) + "],[" + (j) + "] = ");
a[i][j] = sc.nextDouble(); // Keeps telling me to chanege the double into int
}
}
System.out.println("Matrix a:");
for(double i=0; i<tra_size; i++){
for(double j=0; j<tra_size; j++){
System.out.print(a[i][j] + "\t");
}
System.out.print("\n");
}
System.out.println("The Transpose Matrix is");
for(double i=0; i<tra_size; i++){
for(double j=0; j<tra_size; j++){
System.out.print(a[j][i] + "\t");
}
System.out.print("\n");
}
}
}
对于 for 循环,您正在检查从 0 到矩阵大小。那应该是 int
。问题是您的 2d array 类型。如果你想要 double
数据类型的元素,那么你需要将数组声明为 double
.
double a [][]=new double [tra_size][tra_size]
试试这个代码。这将解决你的问题
int tra_size;
Scanner sc=new Scanner(System.in);
System.out.print("What size does the transpose have (n X n): ");
tra_size=sc.nextInt();
double a [][]=new double [tra_size][tra_size];
System.out.println("Input the elements of matrix (a):");
for(int i=0; i<tra_size; i++) {
for(int j=0; j<tra_size; j++) {
System.out.print("a [" + (i) + "],[" + (j) + "] = ");
a[i][j] = sc.nextDouble(); // Keeps telling me to chanege the double into int
}
}
System.out.println("Matrix a:");
for(int i=0; i<tra_size; i++){
for(int j=0; j<tra_size; j++){
System.out.print(a[i][j] + "\t");
}
System.out.print("\n");
}
System.out.println("The Transpose Matrix is");
for(int i=0; i<tra_size; i++){
for(int j=0; j<tra_size; j++){
System.out.print(a[j][i] + "\t");
}
System.out.print("\n");
}
我认为我看到了混乱,数组的索引不应该是double
(它们应该是 int
)。数组 a
的元素应该是 double
(double[][]
而不是 int[][]
)。喜欢,
Scanner sc = new Scanner(System.in);
System.out.print("What size does the transpose have (n X n): ");
int tra_size = sc.nextInt();
double[][] a = new double[tra_size][tra_size];
System.out.println("Input the elements of matrix (a):");
for (int i = 0; i < tra_size; i++) {
for (int j = 0; j < tra_size; j++) {
System.out.printf("a [%d],[%d] = ", i, j);
a[i][j] = sc.nextDouble();
}
}
System.out.println("Matrix a: ");
for (int i = 0; i < tra_size; i++) {
for (int j = 0; j < tra_size; j++) {
System.out.print(a[i][j] + "\t");
}
System.out.println();
}
System.out.println("The Transpose Matrix is");
for (int i = 0; i < tra_size; i++) {
for (int j = 0; j < tra_size; j++) {
System.out.print(a[j][i] + "\t");
}
System.out.println();
}
有两点需要明确:
数组的索引不是双精度的。它们是整数。因此,在遍历数组时,使用 int i
而不是 double i
.
您正在存储双精度作为输入,因此您的二维数组应该是 double
类型而不是 int
。
格式化代码如下:
Scanner sc = new Scanner(System.in);
System.out.print("What size does the transpose have (n X n): ");
int tra_size = sc.nextInt();
//changed from int to double
double[][] a = new double[tra_size][tra_size];
System.out.println("Input the elements of matrix (a):");
//int instead of double
for (int i = 0; i < tra_size; i++) {
for (int j = 0; j < tra_size; j++) {
System.out.printf("a [%d],[%d] = ", i, j);
a[i][j] = sc.nextDouble();
}
}
System.out.println("Matrix a: ");
//int instead of double
for (int i = 0; i < tra_size; i++) {
for (int j = 0; j < tra_size; j++) {
System.out.print(a[i][j] + "\t");
}
System.out.println();
}
System.out.println("The Transpose Matrix is");
//int instead of double
for (int i = 0; i < tra_size; i++) {
for (int j = 0; j < tra_size; j++) {
System.out.print(a[j][i] + "\t");
}
System.out.println();
}
我正在尝试编写一个程序,首先输入转置大小 (n X n),然后输入矩阵元素,但我需要元素为双精度而不是整数,并且我不断收到错误消息(我应该将 double 替换为 int)。 请问我该如何解决?我是 Java 的新手。 非常感谢 这是我的代码:
import java.util.Scanner;
public class transpose_test {
public static void main(String args[]) {
int tra_size;
Scanner sc=new Scanner(System.in);
System.out.print("What size does the transpose have (n X n): ");
tra_size=sc.nextInt();
int a[][]=new int[tra_size][tra_size];
System.out.println("Input the elements of matrix (a):");
for(double i=0; i<tra_size; i++) {
for(double j=0; j<tra_size; j++) {
System.out.print("a [" + (i) + "],[" + (j) + "] = ");
a[i][j] = sc.nextDouble(); // Keeps telling me to chanege the double into int
}
}
System.out.println("Matrix a:");
for(double i=0; i<tra_size; i++){
for(double j=0; j<tra_size; j++){
System.out.print(a[i][j] + "\t");
}
System.out.print("\n");
}
System.out.println("The Transpose Matrix is");
for(double i=0; i<tra_size; i++){
for(double j=0; j<tra_size; j++){
System.out.print(a[j][i] + "\t");
}
System.out.print("\n");
}
}
}
对于 for 循环,您正在检查从 0 到矩阵大小。那应该是 int
。问题是您的 2d array 类型。如果你想要 double
数据类型的元素,那么你需要将数组声明为 double
.
double a [][]=new double [tra_size][tra_size]
试试这个代码。这将解决你的问题
int tra_size;
Scanner sc=new Scanner(System.in);
System.out.print("What size does the transpose have (n X n): ");
tra_size=sc.nextInt();
double a [][]=new double [tra_size][tra_size];
System.out.println("Input the elements of matrix (a):");
for(int i=0; i<tra_size; i++) {
for(int j=0; j<tra_size; j++) {
System.out.print("a [" + (i) + "],[" + (j) + "] = ");
a[i][j] = sc.nextDouble(); // Keeps telling me to chanege the double into int
}
}
System.out.println("Matrix a:");
for(int i=0; i<tra_size; i++){
for(int j=0; j<tra_size; j++){
System.out.print(a[i][j] + "\t");
}
System.out.print("\n");
}
System.out.println("The Transpose Matrix is");
for(int i=0; i<tra_size; i++){
for(int j=0; j<tra_size; j++){
System.out.print(a[j][i] + "\t");
}
System.out.print("\n");
}
我认为我看到了混乱,数组的索引不应该是double
(它们应该是 int
)。数组 a
的元素应该是 double
(double[][]
而不是 int[][]
)。喜欢,
Scanner sc = new Scanner(System.in);
System.out.print("What size does the transpose have (n X n): ");
int tra_size = sc.nextInt();
double[][] a = new double[tra_size][tra_size];
System.out.println("Input the elements of matrix (a):");
for (int i = 0; i < tra_size; i++) {
for (int j = 0; j < tra_size; j++) {
System.out.printf("a [%d],[%d] = ", i, j);
a[i][j] = sc.nextDouble();
}
}
System.out.println("Matrix a: ");
for (int i = 0; i < tra_size; i++) {
for (int j = 0; j < tra_size; j++) {
System.out.print(a[i][j] + "\t");
}
System.out.println();
}
System.out.println("The Transpose Matrix is");
for (int i = 0; i < tra_size; i++) {
for (int j = 0; j < tra_size; j++) {
System.out.print(a[j][i] + "\t");
}
System.out.println();
}
有两点需要明确:
数组的索引不是双精度的。它们是整数。因此,在遍历数组时,使用
int i
而不是double i
.您正在存储双精度作为输入,因此您的二维数组应该是
double
类型而不是int
。
格式化代码如下:
Scanner sc = new Scanner(System.in);
System.out.print("What size does the transpose have (n X n): ");
int tra_size = sc.nextInt();
//changed from int to double
double[][] a = new double[tra_size][tra_size];
System.out.println("Input the elements of matrix (a):");
//int instead of double
for (int i = 0; i < tra_size; i++) {
for (int j = 0; j < tra_size; j++) {
System.out.printf("a [%d],[%d] = ", i, j);
a[i][j] = sc.nextDouble();
}
}
System.out.println("Matrix a: ");
//int instead of double
for (int i = 0; i < tra_size; i++) {
for (int j = 0; j < tra_size; j++) {
System.out.print(a[i][j] + "\t");
}
System.out.println();
}
System.out.println("The Transpose Matrix is");
//int instead of double
for (int i = 0; i < tra_size; i++) {
for (int j = 0; j < tra_size; j++) {
System.out.print(a[j][i] + "\t");
}
System.out.println();
}