배열 관련 문제인데..도와주세요 (--)(__)
외솔
import java.util.Scanner;
class Person
{
private String name;
private String address;
private int age;
public void setName(String name)
{
this.name = name;
}
public void setAge(int age)
{
this.age = age;
}
public void setAddress(String address)
{
this.address = address;
}
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
public String getAddress()
{
return address;
}
}
class Student extends Person
{
private int regno;
private String course;
private int marks;
public void setRegno(int regno)
{
this.regno = regno;
}
public void setCourse(String course)
{
this.course = course;
}
public void setMarks(int marks)
{
this.marks = marks;
}
public int getRegno()
{
return regno;
}
public String getCourse()
{
return course;
}
public int getMarks()
{
return marks;
}
}
class classTest
{
public String input()
{
Scanner scan = new Scanner(System.in);
String str = scan.nextLine();
return str;
}
public int input1()
{
Scanner scan = new Scanner(System.in);
String str = scan.nextLine();
int inputNum = Integer.parseInt(str);
return inputNum;
}
public static void main(String[] args)
{
classTest test = new classTest();
System.out.println(how many Student infomatioin you want?);
int num = test.input1();
Student save[];
save = new Student[num];
for (int i = 0;inum ;i++ )
{
System.out.println(write student+i+ information);
save[i] = new Student();System.out.println(Student+i+ name?);
String nameset = test.input();
save[i].setName(nameset);
System.out.println(Student+i+ age?);
int ageset = test.input1();
save[i].setAge(ageset);
System.out.println(Student+i+ address?);
String addressset = test.input();
save[i].setAddress(addressset);
System.out.println(Student+i+ regno?);
int regnoset = test.input1();
save[i].setRegno(regnoset);
System.out.println(Student+i+ Course?);
String courseset = test.input();
save[i].setCourse(courseset);
System.out.println(Student+i+ marks?);
int marksset = test.input1();
save[i].setMarks(marksset);
for (int x = 0;xnum ;x++ )
{
for (int y = x+1;ynum ;y++ )
{
if (save[x].getAge()save[y].getAge())
{
String [] temp = new temp[1];
temp[0] = save[x];
save[x] = save[y];
save[y] = save[x];
}
}
}
System.out.println(save[0].getName()++save[0].getAge()++save[0].getAddress()++save[0].getRegno()++save[0].getCourse()++save[0].getMarks());}
}
}
저 배열 안에는 이름 나이 주소 레지넘버 코스 점수
이런게 들어갑니다
스트링타입과 인트 타입이 모두 들어가는 배열이에요
비교는 나이만 비교하게 되있어요!
나이를 비교해서 제일 나이 많은 나이가 있는 배열을 출력하는거에요
이름 나이 주소 레지넘버 코스 점수 모두를 출력해야해요
그래서 비교는 나이만 비교한후에
제일 많은 나이를 갖고있는 배열을
임시 배열에 저장한후에
그 배열을 출력하려 했습니다
나이 제일 많은 배열은 0으로 올라갈테니까요..[0]이니까..
[0]만 출력하는데
그전에 배열 복사가 안됩니다.
임시배열 에 그전 배열을 복사한후에
c=a
a=b
b=c
이 구조로 가려고 했지만..
임시 배열의 생성과..
배열의 할당에서
많이 막힙니다.
어떻게 해야 이 부분을 해결할지 조언좀 부탁드릴꼐요
for (int x = 0;xnum ;x++ )
{
for (int y = x+1;ynum ;y++ )
{
if (save[x].getAge()save[y].getAge())
{
String [] temp = new temp[1];
temp[0] = save[x];
save[x] = save[y];
save[y] = save[x];
}
}
이 부분에서
저기 템프 부분만 바꿔서 제대로 임시배열만 저장할수 있게 하면 됩니다.
ㅠㅠ 방법이 있을꺼 같은데 이리저리 해봐도 안되고 미치겠습니다.
-
미쁘다
앗..감사합니다 ㅠㅠ
Student 형 배열도 했었는데 안됬었는데..
이제보니 ㅡㅡ;
위에 입력 받는 메서드를 닫질 않았네요..
정확한 오류 지적에 감사드립니다
(--)(__) -
로운
String [] temp = new temp[1];
이부분에서요..
temp는 스트링형의 배열이지만
tmp[0]에 대입 하려는 배열은 save 즉, Student클래스 형입니다.
그래서 일단은
temp[0] = save[x]를 하실때에 클래스를 Type mismatch라는 메세지를 보게 됩니다.
그래서 Student[] temp = new Student[1]; 요렇게 수정하셔서 형식을 맞추주시면 될것 같고요..
그리고 하단에 입력 받은 숫자의