Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Java > Общие вопросы по Java, Java SE, Kotlin
Регистрация

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

Ответ
 
Опции темы
Старый 10.02.2018, 22:30   #1
kris14
Пользователь
 
Регистрация: 25.10.2017
Сообщений: 25
Репутация: 10
По умолчанию Как правильно сократить код?

Здравствуйте, написала код, который работает (ура!), но не могу понять, как его сократить...Понимаю, что нужно использовать цикл, но как конкретно его прописать не пойму, заклинило и все...

Код:

package com.company;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int[][] matrixA;
        matrixA = new int[5][5];

        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 5; j++) {
                matrixA[i][j] = (int) (Math.random() * 10);
                System.out.print(matrixA[i][j] + "\t");
            }
            System.out.println();
        }
            
//скорее всего, сюда, вместо всего нижеперечисленного, нужно написать что-то вроде    for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { а вот дальше ступор

                int sum = matrixA[0][0] + matrixA[0][1] + matrixA[0][2] + matrixA[0][3] + matrixA[0][4];
        System.out.print(sum + " ");
        int sum1 = matrixA[1][0] + matrixA[1][1] + matrixA[1][2] + matrixA[1][3] + matrixA[1][4];
        System.out.print(sum1 + " ");
        int sum2 = matrixA[2][0] + matrixA[2][1] + matrixA[2][2] + matrixA[2][3] + matrixA[2][4];
        System.out.print(sum2 + " ");
        int sum3 = matrixA[3][0] + matrixA[3][1] + matrixA[3][2] + matrixA[3][3] + matrixA[3][4];
        System.out.print(sum3 + " ");
        int sum4 = matrixA[4][0] + matrixA[4][1] + matrixA[4][2] + matrixA[4][3] + matrixA[4][4];
        System.out.println(sum4 + " ");


        int max = Math.max(
                Math.max(sum, sum1),
                Math.max(sum2, sum3));
        System.out.println("Максимальная сумма элементов строк: " + max);

        int sum5 = matrixA[0][0] + matrixA[1][0] + matrixA[2][0] + matrixA[3][0] + matrixA[4][0];
        System.out.print(sum5 + " ");
        int sum6 = matrixA[0][1] + matrixA[1][1] + matrixA[2][1] + matrixA[3][1] + matrixA[4][1];
        System.out.print(sum6 + " ");
        int sum7 = matrixA[0][2] + matrixA[1][2] + matrixA[2][2] + matrixA[3][2] + matrixA[4][4];
        System.out.print(sum7 + " ");
        int sum8 = matrixA[0][3] + matrixA[1][3] + matrixA[2][3] + matrixA[3][3] + matrixA[4][3];
        System.out.print(sum8 + " ");
        int sum9 = matrixA[0][4] + matrixA[1][4] + matrixA[2][4] + matrixA[3][4] + matrixA[4][4];
        System.out.println(sum9 + " ");


        int max1 = Math.max(
                Math.max(sum5, sum6),
                Math.max(sum7, sum8));
        System.out.println("Максимальная сумма элементов столбцов: " + max1);



    }


}

kris14 вне форума   Ответить с цитированием
Старый 10.02.2018, 23:55   #2
BDA
Модератор
Заслуженный модератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Адрес: RF Moscow
Сообщений: 5,372
Репутация: 2407

icq: 438888048
По умолчанию

Примерно:
Код:

for (int i = 0; i < 5; i++) {
    int sum = 0;
    for (int j = 0; j < 5; j++)
        sum += matrixA[i][j];
    System.out.println(sum + " ");
}

__________________
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума   Ответить с цитированием
Старый 16.02.2018, 17:00   #3
kris14
Пользователь
 
Регистрация: 25.10.2017
Сообщений: 25
Репутация: 10
По умолчанию

Спасибо большое!
Ещё возник вопрос. В итоге, на выходе программа из-за циклов, получается очень длинной, потому что каждое действие выводится, пыталась ставить System.out.print после завершения цикла, но тогда там всё красным подчеркивает, подскажите, пожалуйста, что можно сделать.

Код:

package com.company;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int[][] matrixA;
        matrixA = new int[5][5];

        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 5; j++) {
                matrixA[i][j] = (int) (Math.random() * 10);
                System.out.print(matrixA[i][j] + "\t");
            }
            System.out.println();
        }

        for (int i = 0; i < 5; i++) {
            int sum = 0;
            for (int j = 0; j < 5; j++) {
                sum += matrixA[i][j];
                System.out.println(sum + " ");
            }

            System.out.println("Максимальная сумма элементов строк: " + sum);
        }
        for (int i = 0; i < 5; i++) {
            int sum1 = 0;
            for (int j = 0; j < 5; j++) {
                sum1 += matrixA[i][j];
                System.out.println(sum1 + " ");

        }
        System.out.println("Максимальная сумма элементов столбцов: " + sum1);



    }

}}


_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор
Изображения
Тип файла: jpg 111-horz.jpg (68.9 Кб, 10 просмотров)

Последний раз редактировалось Serge_Bliznykov; 16.02.2018 в 17:31.
kris14 вне форума   Ответить с цитированием
Старый 16.02.2018, 17:38   #4
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 23,145
Репутация: 5118
По умолчанию

не очень понял.

может быть, так?
Код:

 public static void main(String[] args) {
        int[][] matrixA;
        matrixA = new int[5][5];

        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 5; j++) {
                matrixA[i][j] = (int) (Math.random() * 10);
                System.out.print(matrixA[i][j] + "\t");
            }
            System.out.println();
        }

        int maxsum_row=-1, maxsum_col=-1;
        for (int i = 0; i < 5; i++) {
            sum = 0;
            for (int j = 0; j < 5; j++) {
                sum += matrixA[i][j];
            }
	    if(sum>maxsum_row){
		maxsum_row=sum;
	    }
        }
        System.out.println("Максимальная сумма элементов строк: " + maxsum_row);

        for (int i = 0; i < 5; i++) {
            int sum = 0;
            for (int j = 0; j < 5; j++) {
                sum += matrixA[i][j];

            }
	    if(sum>maxsum_col){
		maxsum_col=sum;
	    }

        }
        System.out.println("Максимальная сумма элементов столбцов: " + maxsum_col);
    }

Serge_Bliznykov на форуме   Ответить с цитированием
Старый 16.02.2018, 18:38   #5
kris14
Пользователь
 
Регистрация: 25.10.2017
Сообщений: 25
Репутация: 10
По умолчанию

Всё, поняла, ступила сильно Спасибо Вам большое!
kris14 вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подскажите, как сократить код? beegl Общие вопросы Delphi 9 26.04.2016 14:23
Как сократить код? Вадим12091965 Microsoft Office Excel 11 19.09.2013 20:39
Как сократить код Вадим12091965 Microsoft Office Excel 6 28.10.2012 11:04
Как можно сократить код jocry Общие вопросы Delphi 2 20.01.2009 09:35




21:26.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
лучший хостинг
Выбираем лучший хостинг: рейтинг ТОП 10
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru