0 امتیاز
قبل در برنامه نویسی توسط (0 امتیاز)
ویرایش شده قبل توسط

این کد یک متدی را فرخوانی میکند که وزودی از کاربر گرفته و بصورت  اعداد بزرگ به کوچک مرتب میکند:

package sortarray;

public class start {

public static void main(String[] args) {

  int [] numb={10,12,8,6,2};
 
  sortarray(numb);
}

public static void sortarray(int [] input){
 
  int max=input[0];
  int [] sortmax=input;
 
  for (int i=0;i<input.length;i++)
   if(max<input[i]){
    max=input[i];
    sortmax[i]=max;//kar nemikonad
   }
  for (int j=0;j<sortmax.length;j++)
   System.out.print(" "+sortmax[j]);
}   //khoroji  10 12 8 6 2

}

 

که می خوام هر عددی که کوچک تر از ماکس بود رو داخل این ازایه بریزه به ترتیبint [] sortmax من یک ارایه تعریف کردم به نام 

 در حلقه اجرا نمی شود if ولی کل ارایه رو همون جوری که هست نمایش میدهد دستور 

وجود دارد ولی به ازایه انتقال نمیدهدmax  با منطق برنامه مشکل دارم دلیش می خوام بدونم چیه که عدد بزرگتر ی که در 

با تشکر

2 پاسخ

+1 امتیاز
قبل توسط (596 امتیاز)
ویرایش شده قبل توسط

به نظرم بهتره از کلاس های آماده یا برخی utilها استفاده کنید. مثلا میتونید از کلاس java.util.Arrays و متد sort استفاده کنید.

Integer[] myArray = {1, 8, 3};
Arrays.sort(myArray, Collections.reverseOrder());

همچنین میتونید آرایه رو به لیست تبدیل کرده و بعد آن را sort کنید.

                
                List<Integer> list = Arrays.asList(myArray);
                Collections.sort(list, Collections.<Integer>reverseOrder());
                Integer[] sorted = list.toArray(new Integer[0]);

 

0 امتیاز
قبل توسط (0 امتیاز)
ویرایش شده قبل توسط

 متدتو به این صورت بنویسی درست میشه

    public static void main(String[] args) {
        
        max();
    }
    public static void max(){
        System.out.println("how many");
        int number=5;
        
        int[] list={7 ,5 ,9 ,8 ,6};
        int[] mList= new int[number];
        
        int max=0;
        int a=0;
        for (int i = 0; i <number; i++) {
            
            for(int j=0;j<list.length;j++){
            if(list[j]>max){
                max=list[j];
                a=j;
                }
            
            }
            mList[i]=max;
            
            
        System.out.print(mList[i]);
        max=0;
        list[a]=0;
        }   
}
}

سوالات مشابه

+1 امتیاز
1 پاسخ 6.5هزار بازدید
+1 امتیاز
1 پاسخ 611 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط Reza.R (851 امتیاز)
+1 امتیاز
1 پاسخ 609 بازدید
0 امتیاز
0 پاسخ 355 بازدید
+1 امتیاز
1 پاسخ 569 بازدید
+1 امتیاز
1 پاسخ 1.1هزار بازدید
0 امتیاز
0 پاسخ 450 بازدید
...