在程序中开始先定义一个二维数组a[][]
第一维数通过getpara()从键盘读取N
在后边的程序中如何重定义
import java.io.*;
import java.util.*;
public class homework
{
int N;//需要加工的工件数
int a[][];//存储各个工件前期工件号数组
int b[];//判断工件是否被加工取值0,1 0表示未被加工1表示已加工
int c[][];//加工完第i工件后可选择加工的工件号
int d[];//加工次序数组
int Length[];//加工时存储各个工件的剩余前期工件数
private int getpara()throws IOException
{
byte[] s=new byte[256];
System.in.read(s);
String str=new String(s).trim();
int i=Integer.parseInt(str);
return i;
}
private void setpara()
{
try{
N=getpara();
a=new int[N][];
d=new int[N][];
Length=new int[N][];
c=new int[N][];
b=new int[N][];
for(int i=0;i<N;i++)
{
System.out.println("请输入第"+i+"个工件前期工件数");
int m=getpara();
a[i]=new int[m+1];
a[i][0]=i;
for(int j=1;j<a[i].length;j++)
{
System.out.println("请输入第"+i+"个工件前期工件的序号");
a[i][j]=getpara();
}
}
}catch(IOException e){ System.out.println(e.getMessage()); }
}
private void process(int n,int i)
{
while(i<=14)
{
int m=0;
d[i-1]=n;
b[i-1]=1;
if(i==14)
{for(int l=0;l<N;l++)
System.out.print(d[i]+" ");
System.out.println();
}
for(int j=0;j<N;j++)
{
for(int k=0;k<a[i].length;k++)
{
m=0;
if(a[j][k]==n)Length[j]=Length[j]-1;
if(Length[j]==0 && b[j]==0)m=m+1;
}
While(i<N-1)
{
c[i+1]=new int[m];
}
m=0;
for(int k=1;k<a[j].length;k++)
{
if(a[j][k]==n && Length[j]==0 && b[j]==0){c[i+1][m]=a[j][0];m=m+1;}
}
for(int l=0;l<c[i+1].length;l++)process(c[i+1][l],i+1);
}
}
}
public static void main(String arg[]){
int i=0;
homework h=new homework();
h.setpara();
for(int M=0;M<a.length;M++)
{
Length[M]=a[M].length-1;
if(Length[M]==0)i=i+1;
}
c[0]=new int[i];
for(int L=0;L<i;L++)
{
for(int M=0;M<a.length;M++)
{
if(Length[M]==0)
{
c[0][L]=a[M][0];
h.process(c[0][L],1);
}
}
}}
}
第一维数通过getpara()从键盘读取N
在后边的程序中如何重定义
import java.io.*;
import java.util.*;
public class homework
{
int N;//需要加工的工件数
int a[][];//存储各个工件前期工件号数组
int b[];//判断工件是否被加工取值0,1 0表示未被加工1表示已加工
int c[][];//加工完第i工件后可选择加工的工件号
int d[];//加工次序数组
int Length[];//加工时存储各个工件的剩余前期工件数
private int getpara()throws IOException
{
byte[] s=new byte[256];
System.in.read(s);
String str=new String(s).trim();
int i=Integer.parseInt(str);
return i;
}
private void setpara()
{
try{
N=getpara();
a=new int[N][];
d=new int[N][];
Length=new int[N][];
c=new int[N][];
b=new int[N][];
for(int i=0;i<N;i++)
{
System.out.println("请输入第"+i+"个工件前期工件数");
int m=getpara();
a[i]=new int[m+1];
a[i][0]=i;
for(int j=1;j<a[i].length;j++)
{
System.out.println("请输入第"+i+"个工件前期工件的序号");
a[i][j]=getpara();
}
}
}catch(IOException e){ System.out.println(e.getMessage()); }
}
private void process(int n,int i)
{
while(i<=14)
{
int m=0;
d[i-1]=n;
b[i-1]=1;
if(i==14)
{for(int l=0;l<N;l++)
System.out.print(d[i]+" ");
System.out.println();
}
for(int j=0;j<N;j++)
{
for(int k=0;k<a[i].length;k++)
{
m=0;
if(a[j][k]==n)Length[j]=Length[j]-1;
if(Length[j]==0 && b[j]==0)m=m+1;
}
While(i<N-1)
{
c[i+1]=new int[m];
}
m=0;
for(int k=1;k<a[j].length;k++)
{
if(a[j][k]==n && Length[j]==0 && b[j]==0){c[i+1][m]=a[j][0];m=m+1;}
}
for(int l=0;l<c[i+1].length;l++)process(c[i+1][l],i+1);
}
}
}
public static void main(String arg[]){
int i=0;
homework h=new homework();
h.setpara();
for(int M=0;M<a.length;M++)
{
Length[M]=a[M].length-1;
if(Length[M]==0)i=i+1;
}
c[0]=new int[i];
for(int L=0;L<i;L++)
{
for(int M=0;M<a.length;M++)
{
if(Length[M]==0)
{
c[0][L]=a[M][0];
h.process(c[0][L],1);
}
}
}}
}
但是原来的数组数据就没有了
看一下错误谢谢您了
import java.io.*;
import java.util.*;
public class homework
{
int N;//需要加工的工件数
int a[][];//存储各个工件前期工件号数组
int b[];//判断工件是否被加工取值0,1 0表示未被加工1表示已加工
int c[][];//加工完第i工件后可选择加工的工件号
int d[];//加工次序数组
int Length[];//加工时存储各个工件的剩余前期工件数
private int getpara()throws IOException
{
byte[] s=new byte[256];
System.in.read(s);
String str=new String(s).trim();
int i=Integer.parseInt(str);
return i;
}
private void setpara()
{
try{
N=getpara();
a=new int[N][];
d=new int[N];
Length=new int[N];
c=new int[N][];
b=new int[N];
for(int i=0;i<N;i++)
{
System.out.println("请输入第"+i+"个工件前期工件数");
int m=getpara();
a[i]=new int[m+1];
a[i][0]=i;
for(int j=1;j<a[i].length;j++)
{
System.out.println("请输入第"+i+"个工件前期工件的序号");
a[i][j]=getpara();
}
}
}catch(IOException e){ System.out.println(e.getMessage()); }
}
private void process(int n,int i)
{
while(i<=14)
{
int m=0;
d[i-1]=n;
b[i-1]=1;
if(i==14)
{for(int l=0;l<N;l++)
System.out.print(d[i]+" ");
System.out.println();
}
for(int j=0;j<N;j++)
{
for(int k=0;k<a[i].length;k++)
{
m=0;
if(a[j][k]==n)Length[j]=Length[j]-1;
if(Length[j]==0 && b[j]==0)m=m+1;
}
While(i<N-1)
{
c[i+1]=new int[m];
}
m=0;
for(int k=1;k<a[j].length;k++)
{
if(a[j][k]==n && Length[j]==0 && b[j]==0){c[i+1][m]=a[j][0];m=m+1;}
}
for(int l=0;l<c[i+1].length;l++)process(c[i+1][l],i+1);
}
}
}
public static void main(String arg[]){
int i=0;
homework h=new homework();
h.setpara();
for(int M=0;M<a.length;M++)
{
Length[M]=a[M].length-1;
if(Length[M]==0)i=i+1;
}
c[0]=new int[i];
for(int L=0;L<i;L++)
{
for(int M=0;M<a.length;M++)
{
if(Length[M]==0)
{
c[0][L]=a[M][0];
h.process(c[0][L],1);
}
}
}}
}
谢谢您了
homework.java:84: non-static variable c cannot be referenced from a static conte
xt
c[0]=new int[i];
^
homework.java:87: non-static variable a cannot be referenced from a static conte
xt
for(int M=0;M<a.length;M++)
^
homework.java:89: non-static variable Length cannot be referenced from a static
context
if(Length[M]==0)
^
homework.java:91: non-static variable c cannot be referenced from a static conte
xt
c[0][L]=a[M][0];
^
homework.java:91: non-static variable a cannot be referenced from a static conte
xt
c[0][L]=a[M][0];
^
homework.java:92: non-static variable c cannot be referenced from a static conte
xt
h.process(c[0][L],1);
^
12 errors