import javax.swing.*; // ใช้ swing มาช่วยรับข้อมูลและแสดงข้อมูล
public class test {
public static void main (String [] args) {
String inputnum=JOptionPane.showInputDialog("input number"); // รับค่าโดยใช้ swing เป็น string
String number,max2="",min2="",odd2="",even2="";
int y=0;
int x=Integer.parseInt(inputnum); //แปลง String เป็น integer
int n=0,stcodemax,stcodemin;
int max,max3=0,min,min3=0,odd,even;
int cmax=0,cmin=0, k;
JTextArea outputRerk=new JTextArea(11,20); // สร้าง OBJ แสดงข้อมูล
if(x<1)JOptionPane.showMessageDialog(null,"Error : input number below 1","Warning",JOptionPane.PLAIN_MESSAGE);
// ถ้าค่าที่ใส่ลงไปตอนเริ่มน้อยกว่า 1 จะerror
else{
int arrayrerk[]=new int[x]; // สร้าง array
while(n<x) // loob สำหรับใส่ค่าใน array
{
number=JOptionPane.showInputDialog("input number" + (n+1) + " :");
y=Integer.parseInt(number);
arrayrerk[n]=y;
n++;
outputRerk.append("num " + n + "=" + arrayrerk[n-1] + "\n");
}
//find max and min
max=arrayrerk[0];
min=arrayrerk[0];
n=0;
while(n<x){
if (arrayrerk[n]>max)max=arrayrerk[n];
if (arrayrerk[n]<min)min=arrayrerk[n];
n++;
}
stcodemax=min;
stcodemin=max;
for(k=0;k<x;k++){ // loob สำหรับสั่งให้วนเขียนจำนวนไปเรื่อยๆ
//หาจำนวนที่เท่ากับ max และ min ว่ามีกี่จำนวน
cmax=0;
cmin=0;
for(n=0;n<x;n++){
if(arrayrerk[n]==max)cmax=cmax+1;
if(arrayrerk[n]==min)cmin=cmin+1;
}
//สั่งให้เขียนใน Stringเป็นจำนวนครั้งตามที่นับได้
for(n=0;n<cmax;n++){max2=max2+" "+max;}
if((max%2)!=0)for(n=0;n<cmax;n++)odd2=odd2+" "+max;
for(n=0;n<cmin;n++){min2=min2+" "+min;}
if((min%2)==0)for(n=0;n<cmin;n++)even2=even2+" "+min;
if (max==stcodemax)break; // ถ้าค่าสูงสุดเท่ากับค่าน้อยสุดที่หาได้ตอนเริ่มจะออกจาก loob
//หาค่ามากที่สุดที่น้อยกว่า max และน้อยที่สุดที่น้อยกว่า min
max3=stcodemax;
min3=stcodemin;
n=0;
while(n<x){
if ((arrayrerk[n]>max3)&&(arrayrerk[n]<max))max3=arrayrerk[n];
if ((arrayrerk[n]<min3)&&(arrayrerk[n]>min))min3=arrayrerk[n];
n++;
}
max=max3;
min=min3;
}
// สั่งให้แสดงข้อมูล
outputRerk.append("from max to min is :" + max2+"\n");
outputRerk.append("from min to max is :" + min2+"\n");
outputRerk.append("Odd number from max to min is :" + odd2+"\n");
outputRerk.append("even number from min to max is :" + even2+"\n");
JOptionPane.showMessageDialog(null,outputRerk,"test",JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
System.exit(0);
}
}