Java - Работа с массивами и выводы значений с сортировкой
Добавлено: 15 фев 2016, 08:43
Всем доброго времени суток,
Начал изучать Java и в качестве IDE выбрал NetBeans 8.1.
Задали в универе (учусь на заочном и удалённо) лабораторную работу и практически со всеми пунктами справился,вот только 2 последних некорректно работают. Быть может знатоки могли бы пояснить, где я сделал ошибки?
Первая часть кода - это то, что работает корректно:
Проблемы именно с этими 2 заданиями, что ниже:
Вроде ведь должно выводить одну строку, ибо массив-то одномерный, а выводит 4 строки. Мне почему-то кажется,что задание я сделал некорректно.
Здесь я так и не смог додуматься,как же мне так отсортировать, чтоб вывело так,как должно по заданию.
Начал изучать 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");
Код: Выделить всё
//Задание 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);
}
Код: Выделить всё
// Задание 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);