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

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

Войти
Регистрация
Восстановить пароль
 
DrSMERTb
59 / 35 / 4
Регистрация: 12.11.2010
Сообщений: 809
#1

Написать программу которая бы заполняла одномерный массив (в 40 элементов) рандомными числами. - C++

26.12.2010, 12:04. Просмотров 897. Ответов 9
Метки нет (Все метки)

Всем доброго времени суток. Задание у меня следующее: Нужно написать программу которая бы заполняла одномерный массив (в 40 элементов) рандомными числами. Потом находила MAX элемент этого массива и считала среднее арифметическое всех членов находящихся справа от максимально элемента.
P.s. Если MAX элемента два то считала среднее арифметическое чисел начииная от самого левого MAX элемента.Помогите пожалуйста, буду благодарен за любые хорошие задумки по этой теме.
Заранее сбасибо.

 Комментарий модератора 
Именуйте темы осмысленно. Название темы должно максимально полно отражать ее содержание.
И это не раздел платных услуг, чтобы в названии темы было допустимо слово "срочно".
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2010, 12:04     Написать программу которая бы заполняла одномерный массив (в 40 элементов) рандомными числами.
Посмотрите здесь:

C++ Заполнить одномерный массив из N элементов целыми числами.
C++ Написать программу, которая создает двумерный массив со случайными числами A[N,M]. Вычислить сумму и число положительных элементов массива
Напишите программу, которая заполняет массив из 30 элементов случайными числами в диапазоне от 0 до 100, и выводит значения элементов массива на экран C++
Написать программу, вычисляющую среднее арифметическое всех элементов массива из 200 элементов. Массив заполняется случайными числами C++
C++ Написать ф-ю,которая сортирует одномерный массив по возрастанию или убыванию(задается пользователем),и программу для ее тестирования
Дан одномерный массив А, состоящий из N целых чисел. Составить программу, которая меняет порядок следования элементов на обратный C++
Написать программу, которая вводит с клавиатуры одномерный массив из 5 дробных чисел, после чего выводит кол-во ненулевых элементов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sandye51
программист С++
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
26.12.2010, 12:42     Написать программу которая бы заполняла одномерный массив (в 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
#include <iostream>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
#include <iomanip>
#include <numeric>
 
using namespace std;
    
#define m 40
#define BASE 100
 
void out(const int* Buffer)
{
    for (size_t i = 0; i < m; ++i)
        cout << setw(3) << Buffer[i];
    cout << "\n";
}
 
int main()
{   
    srand((unsigned)time(NULL));
    int* vector = new int[m];
    for (size_t i = 0; i < m; ++i)
        vector[i] = rand() % BASE;
    out(vector);
    int Imax = 0;
    for (size_t i = 1; i < m; ++i)
        if (vector[i] > vector[Imax])
            Imax = i;
    double Average = accumulate(vector + Imax, vector + m, 0) / static_cast<double>(m);
    cout << "Average[" << Imax << ", " << m << "] = " << Average << endl;
    _getch();
           delete[] vector;
    return 0;
}
DrSMERTb
59 / 35 / 4
Регистрация: 12.11.2010
Сообщений: 809
26.12.2010, 12:59  [ТС]     Написать программу которая бы заполняла одномерный массив (в 40 элементов) рандомными числами. #3
Большое спасибо. Но у меня вопрос а можно чтобы он ещё и выводил помимо номера этого эелемента ещё и писал этот элемент
sandye51
программист С++
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
26.12.2010, 13:03     Написать программу которая бы заполняла одномерный массив (в 40 элементов) рандомными числами. #4
добавь
C++
1
cout << "Max = " << vector[Imax] << endl;
DrSMERTb
59 / 35 / 4
Регистрация: 12.11.2010
Сообщений: 809
26.12.2010, 13:05  [ТС]     Написать программу которая бы заполняла одномерный массив (в 40 элементов) рандомными числами. #5
Во)) Большое спасибо)
DrSMERTb
59 / 35 / 4
Регистрация: 12.11.2010
Сообщений: 809
10.01.2011, 15:35  [ТС]     Написать программу которая бы заполняла одномерный массив (в 40 элементов) рандомными числами. #6
Принёс программу на сдачу, запустил на компиляторе в универе, он выдал ошибку, что не знает функцию "accumulate".. можно ли её заменить?
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
10.01.2011, 15:39     Написать программу которая бы заполняла одномерный массив (в 40 элементов) рандомными числами. #7
DrSMERTb, Функция подсчета суммы массива...

C++
1
2
3
4
5
6
7
int sum(int* vec)
{
    int sum=0;
    for(int i=0; i<m; ++i)
       sum+=vec[i];
    return sum;
}
DrSMERTb
59 / 35 / 4
Регистрация: 12.11.2010
Сообщений: 809
10.01.2011, 15:42  [ТС]     Написать программу которая бы заполняла одномерный массив (в 40 элементов) рандомными числами. #8
Хорошо, но он не посчитает среднее арифметические элементов, и он найдёт то суммы элементов всего массива...
sandye51
программист С++
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
10.01.2011, 15:50     Написать программу которая бы заполняла одномерный массив (в 40 элементов) рандомными числами. #9
DrSMERTb, среднее арифметическое - это сумма деленная на число элементов
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2011, 15:53     Написать программу которая бы заполняла одномерный массив (в 40 элементов) рандомными числами.
Еще ссылки по теме:

Написать программу, которая методом обмена "пузырька" сортирует по убыванию введенный с клавиатуры одномерный массив C++
Заполнение элементов вектора рандомными числами без повторений C++
C++ В си++. создал массив с рандомными числами.Дальше не могу сделать
C++ Написать программу, которая будет переворачивать одномерный массив из 12 элементов, введенных с клавиатуры
C++ Написать программу, которая будет генерировать одномерный массив и выводить сумму элементов

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

Или воспользуйтесь поиском по форуму:
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
10.01.2011, 15:53     Написать программу которая бы заполняла одномерный массив (в 40 элементов) рандомными числами. #10
DrSMERTb, Логично. Браво.
C++
1
double Average = accumulate(vector + Imax, vector + m, 0) / static_cast<double>(m);
Открою секрет accumulate подсчитывает только сумму, а среднее арифметическое получается благодаря делению на m.
Что мешает заменить accumulate(vector + Imax, vector + m, 0) на вызов функции sum?

Ну и да. Надо переписать ее по другому...

C++
1
2
3
4
5
6
7
int sum(int* vec, int begin, int end) 
{
    int sum=0;
    for(int i=begin; i < end; ++i)
       sum+=vec[i];
    return sum;     
}
Вызывать соответственно так.

C++
1
sum(vector, Imax, m);
Yandex
Объявления
10.01.2011, 15:53     Написать программу которая бы заполняла одномерный массив (в 40 элементов) рандомными числами.
Ответ Создать тему
Опции темы

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