Всем доброго времени суток, Начал изучать Java и в качестве IDE выбрал NetBeans 8.1. Задали в универе (учусь на заочном и удалённо) лабораторную работу и практически со всеми пунктами справился,вот только 2 последних некорректно работают. Быть может знатоки могли бы пояснить, где я сделал ошибки? Первая часть кода - это то, что работает корректно:
| Код | package labdva; import java.util.Arrays; public class LaboratorDva { /** * @param args the command line arguments */ public static void main(String[] args) { // Третье задание: int n = 4; // кол-во строк в массиве int m = 75; // кол-во столбцов в массиме //двумерный массив с 4 строками и 75 столбцами int [][]massiv = new int [n][m]; // Четвёртое задание: System.out.println("Сгенерирован массив со случайными числами от 0 до 7: \n"); int a =0; // наименьшее число int b = 7; // наибольшее число for(int i=0; i<n; i++){ // строки for(int j=0; j<m; j++){// столбы // Генерирование случайного числа от 0 до 7 masssiv[i][j] = (int)(Math.random()*(b-a+1)+a); //Выводим значения массива на экран System.out.print("["+massiv[i][j]+"]"); } System.out.print("\n"); } // Пятое задание: System.out.println("Посчитано среднее число каждой строки массива: \n"); //Создаём одномерный массив для подсчёта среднего числа каждой строки double[] sred = new double[n]; for(int i=0; i<n; i++){ // проходим строки int strokSum = 0; // начальное значение for(int j=0; j<m; j++){ strokSum+=massiv[i][j]; // сложили всю строку } //Получаем double значения sred[i] = 1.0*strokSum/m; // m - кол-во членов, которые были в строке System.out.println("Среднее значение "+"["+i+"]"+" строки: "+"["+sred[i]+"]"); } // Шестое задание: int lastNumb = 5; // последнее число в 0475 int skolkoCisel = 0; // начальное число for(int i=0; i<n; i++){ for(int j=0; j<m; j++){ massiv[i][j] = (int)(Math.random()*(b-a+1)+a); if(lastNumb == masiv[i][j]){ skolkoCisel++; // увеличиваем на 1 } } } //Выводим результат на экран: System.out.print("В двумерном массиве ["+skolkoCisel+"] чисел, которые равны ["+ lastNumb+"]"+"\n");
|
Проблемы именно с этими 2 заданиями, что ниже:
| Код | //Задание 7 - 0: /*Найти и вывести на экран наибольшее значение одномерного массива, не включая "a" элемент (а - наименьшее из 4-х чисел 0475).*/ int mensh = 0; // наименьшее число из 0475 double maxVal = 0.0; //наибольшее значение,начальное for(int i=0; i<sred.length; i++){ if(sred[i]>maxVal && i!= mensh){ maxVal = sred[i]; } System.out.println("Наибольшее значение: "+maxVal); }
|
Вроде ведь должно выводить одну строку, ибо массив-то одномерный, а выводит 4 строки. Мне почему-то кажется,что задание я сделал некорректно.
| Код | // Задание 8-4: /*Вывести на экран значения a-столбца в порядке возрастания. (a - наименьшее число из чисел 0475).*/ float sredStolb = 0.0f; int[] stolb = new int[massiv.length]; for(int i=0; i<masiv.length; i++){ sredStolb +=massivs[i][mensh]; stolb[i] = massiv[i][mensh]; } Arrays.sort(stolb); System.out.print(sredStolb);
|
Здесь я так и не смог додуматься,как же мне так отсортировать, чтоб вывело так,как должно по заданию. |