Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,861

Найти первый максимальный элемент массива из действительных чисел и заменить его нулем

13.01.2021, 00:06. Показов 4886. Ответов 40
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я в java впервые (до этого связывался с pascal-ем и C#) - просто алфавит плохо знаю...
У меня есть общая структура программы в которой выбирается как будут вводится данные (из консоли или из файла).

В данном коде (это как пример) у меня в файле LR1_3 в процедуре sortAndPrintNumbers выполняется само задание (если if истина, то вводятся данные через консоль, иначе через файл).

LR1_3.java
Кликните здесь для просмотра всего текста

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package com.company;
import com.company.LabKits;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class LR1_3 {
    public static void main(String[] args) throws FileNotFoundException {
        int choice;
        choice = LabKits.getChoice();
        switch (choice) {
            case 1:
                System.out.println("111");
                sortAndPrintNumbers(false);
                break;
            case 2:
                sortAndPrintNumbers(true);
                break;
            default:
                System.out.println("До встречи!");
                break;
        }
    }
 
    private static void sortAndPrintNumbers(boolean fromFile) throws FileNotFoundException {
        if (!fromFile) {
            int a=0,b=0,c=0,n=0,sum,k=0;
            Scanner sc = new Scanner(System.in);
            System.out.println("Введите число k:");
            if(sc.hasNextInt()){
                k = sc.nextInt();
            }
            for(int i = 9; i < 1000; i++){
                if(i % k == 0){
                    a += i;
                }
            }
            sum = a ;
            System.out.println(sum);
        }
        else
        {
            System.out.println("Введите путь к файлу:");
            Scanner path = new Scanner(System.in);
            String stringPath = path.nextLine();
            File file = new File(stringPath);
            Scanner scanner = new Scanner(file);
            String input4 = scanner.nextLine();
            double X4 = Double.parseDouble(input4);
            int a=0,b=0,c=0,n=0,sum;
            Scanner sc = new Scanner(file);
            if(sc.hasNextInt()){
                X4 = sc.nextInt();
            }
            for(int i = 9; i <= 1000; i++){
                if(i % X4 == 0){
                    a += i;
                }
            }
            sum = a ;
            System.out.println(sum);
        }
    }
}

LabKits.java
Кликните здесь для просмотра всего текста

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package com.company;
import java.util.Scanner;
public class LabKits {
    public static int getChoice() {
        int locChoice;
        System.out.println("Введите значение, если хотите ввести данные: \n" +
                "\t\'1\' - из консоли,\n" +
                "\t\'2\' - из файла,\n" +
                "\t\'3\' - выйти из программы;\n");
 
        while (true) {
            Scanner input = new Scanner(System.in);
            locChoice = input.nextInt();
            if (locChoice == 1 || locChoice == 2 || locChoice == 3) {
                break;
            } else {
                System.out.println("Введите лишь 1, 2 или 3");
            }
        }
        return locChoice;
    }
}


Помогите пожалуйста с заданиями:

У меня имеется два задания с которыми у меня возникли сложности:
1. Дан массив действительных чисел. Найти его первый максимальный элемент и заменить его нулем.
2. Если сумма трех различных чисел X, Y, Z меньше единицы, то наименьшее из этих трех чисел заменить полусуммой двух других; в противном случае заменить меньшее из X, Y полусуммой двух оставшихся значений.

по первому заданию у меня получилось выполнить в коде только следующее, я дальше просто не знаю что еще нужно дописать в коде в sortAndPrintNumbers для работоспособности программы.

Java
1
2
3
4
5
6
7
8
9
10
11
for(int i=0; i<k;i++) {
if(m[i]>=mz) {
mz=m[i];
}
}
for(int i=0; i<k;i++) {
if(m[i]==mz) {
m[i]=0;
break;
}
}
по второму заданию у меня не получается перевести имеющийся код с паскаля(конструктивно понимаю, но в java перевести не получается):
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
uses crt;
var x,y,z:real;
begin
clrscr;
repeat
writeln('Введите 3 разных действительных числа:');
readln(x,y,z);
until(x<>y)and(x<>z)and(y<>z);
if x+y+z<1 then
 begin
  if (x<y)and(x<z) then x:=(y+z)/2
  else if (y<x)and(y<z) then y:=(x+z)/2
  else if (z<x)and(z<y) then z:=(x+y)/2
 end
else
 begin
  if x<y then x:=(y+z)/2
  else if y<x then y:=(x+z)/2;
 end;
write('x=',x:0:2,'  y=',y:0:2,'  z=',z:0:2);
readln
end.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.01.2021, 00:06
Ответы с готовыми решениями:

42. Дан массив действительных чисел. Среди них есть равные. Найти первый максимальный элемент массива и заменить его нулем
42. Дан массив действительных чисел. Среди них есть равные. Найти первый максимальный элемент массива и заменить его нулем.

Дан массив действительных чисел. Среди них есть равные. Найти его первый максимальный элемент и заменить его нулем.
Помогите решить в Паскаль пожалуйста!!!! 1)Даны два целых числа: D (день) и M (месяц), определяющие правильную дату невисокосного...

Дан массив действительных чисел. Среди них есть равные. Найти его первый максимальный элемент и заменить его нулем
2. Дан массив действительных чисел. Среди них есть равные. Найти его первый максимальный элемент и заменить его нулем.

40
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
14.01.2021, 16:01
Студворк — интернет-сервис помощи студентам

Не по теме:

Aviz__, не говори...


Цитата Сообщение от xamelione25 Посмотреть сообщение
max = list.size();
Ну что это такое?
Максимум = размер листа...
Написал же - получить элемент по индексу - get(index) !!!!

Зачем ты еще раз все пытаешься перебрать и ноль запихнуть в лист? Мы на основе листа собираем массив, уже с нулем на месте максимума.
Вот как должно быть на данном этапе.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package com.company;
 
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
 
public class Main {
 
    public static void main(String[] args) {
        System.out.println("Введите путь к файлу:");
        Scanner path = new Scanner(System.in);
        String stringPath = path.nextLine();
        List<Double> list = new ArrayList<>();
 
        File file = new File(stringPath);
        try (Scanner sc = new Scanner(file)) {
            while (sc.hasNextDouble()) {
                list.add(sc.nextDouble());
            }
        } catch (IOException ex) {
            ex.printStackTrace();
        }
 
        double[] result = new double[list.size()];
        boolean first = true;
        double max = list.stream().mapToDouble(Double::doubleValue).max().getAsDouble();
        for (int i = 0; i < list.size(); i++) {
 
            if (list.get(i) == max && first) {
                result[i] = 0;
                first = false;
            } else
                result[i] = list.get(i);
        }
 
        System.out.println("Сформированный массив:");
        System.out.println(Arrays.toString(result));
    }
}

Не по теме:

Правда, работать это не будет, как я и говорил выше

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.01.2021, 16:01

Дан массив действительных чисел, среди них есть равные. Найти первый максимальный элемент и заменить его нулем
Дан массив действительных чисел, среди них есть равные. Найти первый максимальный элемент и заменить его нулем.

Найти первый максимальный элемент массива и заменить его нулем
Дан массив действительных чисел, среди которых есть равномерные. Найти первый максимальный элемент этого массива и заменить его нулем....

Найти первый максимальный элемент массива и заменить его нулем.
Доброй ночи! Может кто-то сможет мне сейчас помочь,очень прошу!!!Помогите решить задачу в Excel на языке VBA Дан массив действительных...

Найти первый максимальный элемент массива и заменить его нулем
Дан массив действительных чисел. Среди них есть равные. Найти его первый максимальный элемент и заменить его нулем буду очень...

Найти первый максимальный элемент массива и заменить его нулем
Дан массив действительных чисел, среди которых есть равномерные . Найти первый максимальный элемент этого массива и заменить его нулем....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
41
Ответ Создать тему
Новые блоги и статьи
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store. И так: 1. Скачиваем с. . .
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге). Задача: Программно добавить префикс в нумерацию документов. Решение: В модуле объекта. . .
После закрытия оутлука продолжает висеть процесс в диспетчере задач
Maks 27.10.2026
С недавнего времени в продакшене возникла проблема: при закрытии оутлука в диспетчере задач продолжал висеть процесс outlook. exe. Проблема возникла после установки MS Office 2021 LTSC на машинах, под. . .
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него. https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952 Инструкция внутри. https:/ / youtu. be/ VpfFZSUDGnQ. . .
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru