Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
Вася1q
21 / 21 / 3
Регистрация: 13.09.2011
Сообщений: 312
1

Задача на линейный массив

25.09.2012, 20:20. Просмотров 1334. Ответов 11
Метки нет (Все метки)

Добрый вечер. Помогите кто может, и главное, хочет. Java никогда не учил ранее, только СИ++.
Нужно:
Занести в массив результаты измерений температуры воздуха, которые проводились ежедневно в течении декабря месяца. Определить: а) день, когда температура была наибольшей; b) любой из самых холодных дней декабря; c) среднюю температуру тех дней, которые предшествуют первому из самых холодных дней в декабре.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.09.2012, 20:20
Ответы с готовыми решениями:

Задача на линейный и бинарный поиск фамилии студента по первым буквам и целиком и по части телефонного номера
Организовать массив типа Студент со следующими полями: фамилия, имя, год...

задача на двумерный массив
Будем рассматривать подмассивы Aij некоторого вещественного двумерного массива...

Задача на двумерный массив
Не могу ни как решить задачку,если можете помогите пожалуйста. Есть двумерный...

Двумерный массив. Задача
Задали такую задачу: дана матрица n*n (пока тестю с матрицей 3*3), в которой...

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

11
Drygba
507 / 449 / 119
Регистрация: 17.02.2012
Сообщений: 1,032
Записей в блоге: 1
25.09.2012, 21:52 2
странно такое задание видеть от человека который писал на С++, в таких задачах отличия в языках минимальны, как то так
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
int[] temp = new int [31];
        int[] max = {0,0};
        int[] min = {0,0};;
        int average = 0;
        int count = 0;
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i<31; i++){
            System.out.print("Введите значение температуры для дня № " + (i+1) + " : ");
            temp[i] = sc.nextInt();
        }
        
        for (int i = 0; i<31; i++){
            if (max[0]<temp[i]){
                max[0] = temp[i];
                max[1] = i;
            }
            if (min[0]>temp[i]){
                min[0] = temp[i];
                min[1] = i;
            }
        }
        System.out.println("Максимальная температура была " + max[1] + " числа");
        System.out.println("Минимальная температура была "+ min[1] + " числа");
        
        for (int i = 0; i<31; i++){
            if (i != min[1]){
                average += temp[i];
                count++;
            }
            else break;
        }
        System.out.println("среднюю температуру тех дней, которые предшествуют первому из самых холодных дней в декабре: " + average/count);
1
Вася1q
21 / 21 / 3
Регистрация: 13.09.2011
Сообщений: 312
25.09.2012, 22:59  [ТС] 3
Drygba, Скиньте лучше полный код...со всеми библиотеками и шапками,пожалуйста!)
0
Drygba
507 / 449 / 119
Регистрация: 17.02.2012
Сообщений: 1,032
Записей в блоге: 1
26.09.2012, 08:17 4
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
import java.util.Scanner;
 
public class massDes {
    public static void main(String[] args) {
        int[] temp = new int [31];
        int[] max = {0,0};
        int[] min = {0,0};;
        int average = 0;
        int count = 0;
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i<31; i++){
            System.out.print("Введите значение температуры для дня № " + (i+1) + " : ");
            temp[i] = sc.nextInt();
        }
        
        for (int i = 0; i<31; i++){
            if (max[0]<temp[i]){
                max[0] = temp[i];
                max[1] = i;
            }
            if (min[0]>temp[i]){
                min[0] = temp[i];
                min[1] = i;
            }
        }
        System.out.println("Максимальная температура была " + max[1] + " числа");
        System.out.println("Минимальная температура была "+ min[1] + " числа");
        
        for (int i = 0; i<31; i++){
            if (i != min[1]){
                average += temp[i];
                count++;
            }
            else break;
        }
        System.out.println("среднюю температуру тех дней, которые предшествуют первому из самых холодных дней в декабре: " + average/count);
    }
}
1
Вася1q
21 / 21 / 3
Регистрация: 13.09.2011
Сообщений: 312
26.09.2012, 23:18  [ТС] 5
Drygba, протестил программу и нашел ошибки.
0
Миниатюры
Задача на линейный массив  
Вася1q
21 / 21 / 3
Регистрация: 13.09.2011
Сообщений: 312
26.09.2012, 23:21  [ТС] 6
Получается, программа вычисляет не день, когда температура была наибольшей, а предыдущий день. Самый холодный день вообще неправильно определяет. Про среднюю температуру даже в консоли не пишет((( Помогите понять где ошибки!
0
Вася1q
21 / 21 / 3
Регистрация: 13.09.2011
Сообщений: 312
28.09.2012, 13:40  [ТС] 7
Ребята...помогите!)
0
Вася1q
21 / 21 / 3
Регистрация: 13.09.2011
Сообщений: 312
29.09.2012, 19:11  [ТС] 8
никто так и не ответил(
0
Kidasov
77 / 77 / 34
Регистрация: 02.12.2011
Сообщений: 965
Записей в блоге: 3
29.09.2012, 22:33 9
На 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
import java.util.Scanner;
import java.util.Random;
 
public class Weather { 
    Scanner in = new Scanner(System.in);
    static Random random = new Random();
    final int days_number = 31;
    int days[] = new int[days_number];
    
    void enter() {
        System.out.print("Enter max temperature: ");
        int max_temperature = in.nextInt();
        System.out.print("Enter min temperature: ");
        int min_temperature = in.nextInt();
        for (int i = 0; i < days_number; i++) {
            days[i] = -(random.nextInt(min_temperature)) + random.nextInt(max_temperature);
        }
    }
    
    void show() {
        for(int i = 0; i < days_number; i++) {
            System.out.println("Day " + (i + 1) + " : " + days[i]);
        }
    }
    
    void find() {
        double sum = 0;
        int max, min, max_day, min_day;
        max = min = max_day = min_day = 0;
        
        for (int i = 0; i < days_number; i++) {
            if (min > days[i]) {
                 min = days[i];
                 min_day = i + 1;
            }
            if (max < days[i]) {
                 max = days[i];
                 max_day = i + 1;
            }
        }
        
        for (int i = 0; i < min_day - 1; i++) {
            sum += days[i];
        }
        System.out.println("The coldest day in December " + min_day);
        System.out.println("The hottest day in December " + max_day);
        System.out.println("Mid val: " + (double)sum/min_day);
    }
    
    public static void main(String [] arg) {
        Weather december = new Weather();
        december.enter();
        december.show();
        december.find();
    }
    
}
1
Вася1q
21 / 21 / 3
Регистрация: 13.09.2011
Сообщений: 312
01.10.2012, 18:46  [ТС] 10
Kidasov, Не могу поверить, как не зная, яву можно такое написать?) Талант!!))

Добавлено через 7 минут
Получается, что температура вводится по модулю? т.к. при отрицательных значениях получается ошибка.

Добавлено через 8 минут
Вот еще, забавно получилось, но в декабре температура должна быть ниже нуля))) Подкорректируйте плиз)
0
Kidasov
77 / 77 / 34
Регистрация: 02.12.2011
Сообщений: 965
Записей в блоге: 3
02.10.2012, 00:08 11
Ввод делал случайным, чтобы 31 число не вводить.

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
import java.util.Scanner;
import java.util.Random;
import java.lang.Math;
 
public class Weather { 
    Scanner in = new Scanner(System.in);
    static Random random = new Random();
    final int days_number = 31;
    int days[] = new int[days_number];
    
    int enter() {
        System.out.print("Enter  minimal temperature in December : ");
        int min_temperature = in.nextInt();
        if (min_temperature >= 0) {
            System.out.println("Temperature must be negative");
            return -1;
        }
        for (int i = 0; i < days_number; i++) {
            days[i] = -random.nextInt(Math.abs(min_temperature)) - 1;
        }
        return 1;
    }
    
    void show() {
        for(int i = 0; i < days_number; i++) {
            System.out.println("Day " + (i + 1) + " : " + days[i]);
        }
    }
    
    void find() {
        double sum = 0;
        int max, min, max_day, min_day;
        max_day = min_day = 0;
        
        max = min = days[0];
 
        for (int i = 0; i < days_number; i++) {
            if (min >= days[i]) {
                 min = days[i];
                 min_day = i + 1;
            }
            if (max <= days[i]) {
                 max = days[i];
                 max_day = i + 1;
            }
        }
        
        for (int i = 0; i < min_day - 1; i++) {
            sum += days[i];
        }
        System.out.println("The coldest day in December " + min_day);
        System.out.println("The hottest day in December " + max_day);
        System.out.printf("Mid val: %.2f\n", (double)sum/min_day);
    }
    
    public static void main(String [] arg) {
        Weather december = new Weather();
        if(december.enter() > 0) {
            december.show();
            december.find();
        }
    }
}
0
hijack2012
0 / 0 / 0
Регистрация: 29.09.2012
Сообщений: 1
02.10.2012, 22:31 12
Замените в последнем примере строчки на
days[i] = min_temperature+(random.nextInt(max_temperature-min_temperature));
и
System.out.println("Mid val: " + (double)sum/(min_day-1));
и будет вам счастье с вводом любых значений граничных температур и правильным подсчетом средней температуры.

Добавлено через 1 минуту
Ой, простите, не заметил, что на второй страничке еще ответ есть)))
0
02.10.2012, 22:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.10.2012, 22:31

Задача№ Массив линейный
Введите с клавиатуры пять целочисленных элементов массива X. Выведите на экран...

Задача: Линейный массив из 10 чисел.(Форма)
задача : Дан линейный массив из 10 целых чисел. Пересортировать массив по...

Задача: Задан линейный массив, создать 2 массива в одном
Задан линейный массив, создать 2 массива в одном из которых находится все...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru