{
if(arr[i]>max1)
{
max1= arr[i];
}
}
for (int j=0; j<n; j++)
{
if (arr[j]>=max2 && arr[j]< max1 )
{
max2=arr[j];
}
}
for (int k=0; k<n;k++)
{
if( arr[k]>=max3 && arr[k]<=max1 && arr[k]<max2 )
{
max3=arr[k];
}
}
при вводе массива с разными числами (от 1 до 100000) работает хорошо, но если массив состоит из одинаковых чисел, то не работает, что нужно испрвить?
А что это вообще
вводится размер массива = n вводятся натуральные числа в массив Вывод: Делители третьего максимума нечетные в порядке возрастания, четные в порядке убывания import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner= new Scanner (System.in); int max1=0, max2=0; int max3=0; int n= scanner.nextInt(); int []arr= new int[n]; for(int i=0; i<n; i++) { arr[i]= scanner.nextInt(); } for (int v=0; v<n; v++) { if(arr[v]>max1) { max1= arr[v]; } for (int j=0; j<n; j++) { if (arr[j]>=max2 && arr[j]< max1 ) { max2=arr[j]; } } for (int k=0; k<n;k++) { if( arr[k]>=max3 && arr[k]<=max1 && arr[k]<max2 ) { max3=arr[k]; } } } for( int m=1; m<=max3; m++ ) { if( max3%m==0) { if ( m%2!=0) { System.out.print(m+" "); } } } for (int f=max3;f>0; f--) { if( max3%f==0) { if ( f%2==0) { System.out.print(f+" "); } } } } }
Ну добавь проверку если max2 равен 0, то делай равным max1. Аналогично для max3
Обсуждают сегодня