Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
1 / 1 / 1
Регистрация: 02.12.2013
Сообщений: 30
1

Найти минимальное произведение двух показаний из множества показаний прибора

31.10.2015, 20:37. Показов 1229. Ответов 2
Метки нет (Все метки)

Здравствуйте.
Я попытался решить самую последнюю задачу C3 из ЕГЭ по информатике. Но моя программа работает некорректно.

Текст задания:
На спутнике «Восток» установлен прибор, предназначенный для измерения
энергии космических лучей. Каждую минуту прибор передаёт по каналу
связи неотрицательное вещественное число – количество энергии,
полученной за последнюю минуту, измеренное в условных единицах.
Временем, в течение которого происходит передача, можно пренебречь.
Необходимо найти в заданной серии показаний прибора минимальное
произведение двух показаний, между моментами передачи которых прошло
не менее 6 минут. Количество энергии, получаемое прибором за минуту, не
превышает 1000 условных единиц. Общее количество показаний прибора
в серии не превышает 10 000.
Примечание: В первой строке входных данных задается общее количество показаний прибора за серию.

Код моей программы:

C++
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
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int main() {
    int D = 6;
    int Array[5]; int Digit; int i; int Min; int MinP; int Curr; int Temp;
    scanf("%d", &Digit);
    for (int i = 1; i <= D; ++i) {
        Temp = i % 6;
        scanf("%d", &Array[Temp]);
    }
    Min = 1000 + 1;
    MinP = Min * Min;
    for (int i = D + 1; i <= Digit; ++i) {
        scanf("%d", &Curr);
        Temp = i % 6;
        if (Min > Array[Temp])
            Min = Array[Temp];
        if (Min * Curr < MinP)
            MinP = Min * Curr;
        Array[Temp] = Curr;
    }
    printf("%d", MinP);
    system("pause");
}
Корректные входные данные:
11
12
45
5
3
17
23
21
20
19
12
26

Корректные выходные данные:
95

Выходные данные моей программы: 36, но в конце выполнения я получаю ошибку:
Run-Time Check Failure #2 - Stack around the variable 'Array' was corrupted.
Похоже у моего массива происходит переполнение, но я так и не понял почему.
Вы можете мне помочь? Заранее благодарен за ответ.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.10.2015, 20:37
Ответы с готовыми решениями:

Найти в серии показаний минимальное произведение двух показаний, между которыми прошло не менее 6 минут
Добрый день, задали по информатике на днях решить следующую задачу: На спутнике «Фотон»...

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

Разработка программы для учёта показаний водомера через интернет
Пожалуйста помогите!!!! Необязательно через интернет!! Любой вариант на любом из следующих языках:...

Найти произведение двух матриц и минимальное значение результата
#include &lt;iostream.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; main() { ...

2
Модератор
Эксперт С++
11049 / 9114 / 5476
Регистрация: 18.12.2011
Сообщений: 24,379
31.10.2015, 22:18 2
А то, что индексы массивов в С++ начинаются с нуля для Вас открытие?
т.е. int Array[5]; имеет индексы от нуля до 4.
1
Заблокирован
31.10.2015, 22:59 3
Цитата Сообщение от roman0412 Посмотреть сообщение
Корректные выходные данные:
95
т.е. 5*19 = 95

А чем не устраивает 3*12 = 36?
Это явно меньше.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.10.2015, 22:59

Найти в заданной серии показаний прибора минимальное произведение двух показаний
Решение: program C4_DEMO2015B; const C = 10000000; var nums : array of real; min_pr :...

В компонент Label вывести надпись «произведение показаний» и добавить текущее значение произведения показаний счетчиков
Разместите на форме два компонента Edit и два компонента UpDown. Первый счетчик должен отображать...

Изменение показаний прибора
Прошу у Вас помощи При увеличении сопротивление на втором резисторе, какой из &quot; приборов&quot; изменит...

Найти характер зависимости показаний вольтметра от положения движка на потенциометре
К потенциометру с сопротивлением 2 кОм, имеющему длину обмотки 20 см, приложено напряжение 400 В....


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

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

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