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 پاسخ 1.5هزار بازدید
+1 امتیاز
1 پاسخ 506 بازدید
سوال شده 4 سال قبل در برنامه نویسی توسط Reza.R (851 امتیاز)
+1 امتیاز
1 پاسخ 497 بازدید
0 امتیاز
0 پاسخ 314 بازدید
+1 امتیاز
1 پاسخ 435 بازدید
0 امتیاز
0 پاسخ 365 بازدید
...