Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2016, 08:37   #1
Oxidous
Пользователь
 
Регистрация: 31.08.2007
Сообщений: 28
По умолчанию Java - Работа с массивами и выводы значений с сортировкой

Всем доброго времени суток,
Начал изучать 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);
Здесь я так и не смог додуматься,как же мне так отсортировать, чтоб вывело так,как должно по заданию.
Oxidous вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Посоветуйте правильные ли выводы? Illusiony SQL, базы данных 0 29.08.2015 17:49
задача с сортировкой массива, java dungle Помощь студентам 0 17.12.2011 16:40
Здравствуйте! Прошу совета по работе с большими массивами значений dgreez Microsoft Office Excel 5 16.12.2009 08:03
Сравнение значений с сортировкой Al_B Microsoft Office Excel 2 27.03.2009 20:41
Перспективы развития рунета, заметки и некоторые выводы. Alar Свободное общение 13 22.01.2008 16:05