JAVA简单问题,查找法

来源:百度知道 编辑:UC知道 时间:2024/06/06 02:07:25
今天早晨写了一个职工工号排序并且查找的代码,但编译时总是出问题,我估计是因为初始化顺序而引发的问题,希望会的朋友帮我看一看,该怎么写,才能避免引用未声明的数据的问题!另外我有一个输入的类在同一个包中,所以在此直接引用方法Input.readInt()等`

//排列职工工号,以及查找职工姓名
class wp{
void arrange(int[] i,int n){//按照职工工号大小排序
int a;
for(int j=0;j<n-1;j++)
for(int k=j+1;k<n;k++){
if(i[j]>i[k]){
a=i[j];i[j]=i[k];i[k]=a;
}
}
System.out.println("排序完成!");
}
void findName(int i){//输入工号,查找姓名
System.out.println("您所查找的职工姓名为:"+name[i-1]);
}
public static void main(String[] args){
System.out.println("请您输入职工人数");
int n=Input.readInt();
int[] Number=new int[n];
String[] name=new String[n];
System.out.println("请依次输入职工的工号和姓名:");
for(int j=0;j<n;j++){
Number[j]=Input.readInt();
name[j]=Input.readString();
}
wp w=new wp();
System.out.println("请等待,排序中...");
w.arrange

你的name在main中声明,但findName中没有呀

要不就给findName加一个参数(String []n),把name传过去

又或者:

class wp{
void arrange(int[] i,int n){//按照职工工号大小排序
int a;
for(int j=0;j<n-1;j++)
for(int k=j+1;k<n;k++){
if(i[j]>i[k]){
a=i[j];i[j]=i[k];i[k]=a;
}
}
System.out.println("排序完成!");
}

void findName(int i){//输入工号,查找姓名
System.out.println("您所查找的职工姓名为:"+name[i-1]);
}

public static void main(String[] args){
System.out.println("请您输入职工人数");
int n=Input.readInt();
int[] Number=new int[n];
name=new String[n];
System.out.println("请依次输入职工的工号和姓名:");
for(int j=0;j<n;j++){
Number[j]=Input.readInt();
name[j]=Input.readString();
}
wp w=new wp();
System.out.println("请等待,排序中...");
w.arrange(Number,n);
System.out.println("请输入要查找的职工的工号:&qu