Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Shab13
1 / 1 / 0
Регистрация: 10.03.2011
Сообщений: 39
#1

Указатели и динамическое выделение памяти - C++

14.04.2011, 10:13. Просмотров 375. Ответов 4
Метки нет (Все метки)

Нужно заполнить массив из 200 элементов числами на промежутке [0;100], и найти последовательность из 10 элементов у которых наибольшее срееднее арифметическое. Даную последовательность вывести.
Буду очень благодарен
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2011, 10:13     Указатели и динамическое выделение памяти
Посмотрите здесь:
C++ Указатели С++. Динамическое выделение памяти
C++ Указатели и функции. Динамическое выделение памяти
Указатели, динамическое выделение памяти, работа с файлом C++
Указатели, Динамическое выделение памяти, Ошибка invalid allocation size C++
Вопрос по программе на тему: Массивы и указатели. Динамическое выделение памяти C++
Указатели, связной список (Linked List) и динамическое выделение памяти C++
Указатели, функции и динамическое выделение памяти: вывести строки с неповторяющимися данными C++
String в классе (конструктор): когда стоит применять указатели и динамическое выделение памяти? C++
C++ Динамическое выделение памяти
C++ Динамическое выделение памяти
Динамическое выделение памяти C++
C++ Динамическое выделение памяти

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Петррр
5942 / 3379 / 336
Регистрация: 28.10.2010
Сообщений: 5,926
14.04.2011, 10:40     Указатели и динамическое выделение памяти #2
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include <conio.h>
#include <ctime>
 
int main()
{
    srand(time(0));
    //Поддержка русского
    setlocale(LC_ALL, "");
    //массив
    int *a = new int[200];
    //Заполнение и вывод
    for(int i = 0; i < 200; i++)
    {
        a[i] = rand() % 100;
        std::cout <<a [i] << ' ';
    }
    //Максимальная сумма
    int max = -1;
    //Бурер для хранения суммы 10 элементов
    int buf = 0;
    //поиск последовательности
    for(int i = 0; i < 190; i++)
    {
        for(int j = i; j < i + 10; j++)
        {
            buf += a[j];                        
        }
        if (buf > max)
        {
            max = buf;
            buf = 0;
        }
    }
    std::cout << std::endl;
    std::cout << "Наибольшее среднее арифметическое: " << max / 10;
    delete [] a;
    _getch();
    return 0;
}
Shab13
1 / 1 / 0
Регистрация: 10.03.2011
Сообщений: 39
14.04.2011, 10:51  [ТС]     Указатели и динамическое выделение памяти #3
СПАСИБО!)

Добавлено через 3 минуты
Цитата Сообщение от Петррр Посмотреть сообщение
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include <conio.h>
#include <ctime>
 
int main()
{
    srand(time(0));
    //Поддержка русского
    setlocale(LC_ALL, "");
    //массив
    int *a = new int[200];
    //Заполнение и вывод
    for(int i = 0; i < 200; i++)
    {
        a[i] = rand() % 100;
        std::cout <<a [i] << ' ';
    }
    //Максимальная сумма
    int max = -1;
    //Бурер для хранения суммы 10 элементов
    int buf = 0;
    //поиск последовательности
    for(int i = 0; i < 190; i++)
    {
        for(int j = i; j < i + 10; j++)
        {
            buf += a[j];                        
        }
        if (buf > max)
        {
            max = buf;
            buf = 0;
        }
    }
    std::cout << std::endl;
    std::cout << "Наибольшее среднее арифметическое: " << max / 10;
    delete [] a;
    _getch();
    return 0;
}
А можна как-то вывести именно последовательность у которой наибольшее среднее арифметическое?
Петррр
5942 / 3379 / 336
Регистрация: 28.10.2010
Сообщений: 5,926
14.04.2011, 11:04     Указатели и динамическое выделение памяти #4
Там не правильно. Сейчас переделаю.

Добавлено через 3 минуты
Сейчас вроде все нормально.
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <iostream>
#include <conio.h>
#include <ctime>
 
int main()
{
    srand(time(0));
    //Поддержка русского
    setlocale(LC_ALL, "");
    //массив
    int *a = new int[200];
    //Заполнение и вывод
    for(int i = 0; i < 200; i++)
    {
        a[i] = rand() % 100;
        std::cout <<a [i] << ' ';
    }
    //Максимальная сумма
    int max = -1;
    //Бурер для хранения суммы 10 элементов
    int buf = 0;
    int index = -1;
    //поиск последовательности
    for(int i = 0; i < 190; i++)
    {
        for(int j = i; j < i + 10; j++)
        {
            buf += a[j];                        
        }
        if (buf > max)
        {
            max = buf;
            index = i;
        }
        buf = 0;
    }
    std::cout << std::endl;
    for(int i = index; i < index + 10; i++)
        std::cout << a[i] << ' ';
    std::cout << std::endl;
    double avg = max / 10;
    std::cout << "Наибольшее среднее арифметическое: " << avg;
    delete [] a;
    _getch();
    return 0;
}
Shab13
1 / 1 / 0
Регистрация: 10.03.2011
Сообщений: 39
14.04.2011, 11:13  [ТС]     Указатели и динамическое выделение памяти #5
Теперь всё суперски работает!)
ООООгромное спасибо))
Yandex
Объявления
14.04.2011, 11:13     Указатели и динамическое выделение памяти
Ответ Создать тему
Опции темы

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