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

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

13.01.2021, 00:06. Показов 4761. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время? Никакой пенсии. Никакого нового. . .
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы Кратко. . .
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем **Полевые заметки о двухнедельной совместной работе**. . .
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru