Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Java - Работа с массивами и выводы значений с сорт, возникли затруднения с 2 заданиями 
:(
    Опции темы
Oxidous
Дата 15.2.2016, 08:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 24.9.2015

Репутация: нет
Всего: нет



Всем доброго времени суток,
Начал изучать 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);


Здесь я так и не смог додуматься,как же мне так отсортировать, чтоб вывело так,как должно по заданию. 
PM MAIL   Вверх
monstrix89
Дата 16.2.2016, 11:47 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











В 7-м задании вынеси вывод текста в консоль за пределы цикла.
Код

//Задание 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-ом задании непонятно зачем тебе 
Код

sredStolb +=massivs[i][mensh];

a-столбец ты добавил в новый массив stolb[], затем его отсортировал в порядке возрастания, просто дальше выведи его на экран
Код

for(Integer i : stolb)
            System.out.println(i);
      

Этот ответ добавлен с нового Винграда - http://vingrad.com
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0422 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.