我正在尝试制作一个矩阵,并在最右侧显示另一列 该列的值与第一行和第一列相同 我的代码有问题吗?我对Java不是很熟悉。
import java.util.*;
class Test
{
public static Scanner br = new Scanner(System.in);
static int w [][];
static int n;
static int i, j;
public static void main (String[] args)
{
System.out.println("Find the shortest edge");
System.out.println("\nEnter the number of the vertices: ");
n = br.nextInt();
w = new int[n+1][n+1];
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
{
if((i!=j))
{
w[i][j] = w[j][i]= 1+(int)(Math.random()*9);
}
else if(i == j)
{
w[i][j] = w[j][i] = 0;
}
}
Graph();
Prim();
}
static void Graph()
{
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
System.out.print(" "+w[i][j]+" ");
}
System.out.println(w[i][j]+" ");
}
}
static void Prim()
{
getMinlength();
}
static void getMinlength()
{
int a=1,b=2;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
if((w[i][j] < w[a][b])&&(i!=j))
{
a=i;
b=j;
}
}
System.out.println("The shortest edge is "+a+" to "+b);
}
}
答案 0 :(得分:1)
您必须替换Graph()方法中的最后一行 从:
System.out.println(w[i][j]+" ");
为:
System.out.println();
答案 1 :(得分:0)
问题出在Graph函数的外部循环中。 您只想打印一个新行,而不是另一个值w [i] [j]
e.g。
System.out.println("");