Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.76/25: Рейтинг темы: голосов - 25, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 16.12.2016
Сообщений: 42

Вычислить среднее арифметическое отрицательных элементов массива

06.02.2017, 11:54. Показов 5211. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создать функцию, параметром которой является одномерный массив и его размерность. Тело функции реализовать двумя способами: через обращение к элементам массива через указатели и обычным способом. Продемонстрировать возможность применения созданной функции к строкам двумерного массива. Элементы матрицы задать случайным образом, не забыв вывести их на экран.
1.Вычислить среднее арифметическое отрицательных элементов массива. Использовать функцией для каждой строки матрицы А (4, 8).
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.02.2017, 11:54
Ответы с готовыми решениями:

Вычислить среднее арифметическое отрицательных элементов массива
Помогите студенту!!!!) ___________________________ Вычислить среднее арифметическое отрицательных элементов. Размер массива 4...

Вычислить среднее арифметическое всех отрицательных элементов массива
Даны вещественные массивы А, F. Для каждого массива определить: среднее арифметическое отрицательных элементов, среднее арифметическое...

Вычислить среднее арифметическое отрицательных элементов массива. Использовать функцией для каждой строки матрицы А (4, 8)
Здравствуйте. Вычислить среднее арифметическое отрицательных элементов массива. Использовать функцией для каждой строки матрицы А (4, 8)....

21
 Аватар для vvm28
773 / 541 / 67
Регистрация: 22.12.2013
Сообщений: 2,500
Записей в блоге: 26
19.03.2017, 21:05
Студворк — интернет-сервис помощи студентам
Вот я еще немного переделал.
Нужно еще одну проверку ввести, на случай, если отрицательного числа в массиве нет. Этого у меня в первом варианте не было.
Поищите еще про генерацию случайного числа в заданном диапазоне.

У вас в условии задания одномерный массив . Вам нужен один индекс для массива a[i] ;
и нет надобности использовать два цикла for(i) for(j)
Тут я создаю в программе указатель на массив, чтобы к нему можно было обратиться из функции.
Если массив создать статический, как вы создали, то область видимости его будет main{ int a[10] - только в этом месте вы видите массив}

Вот я переписал. Посмотрите еще про генерацию случайных(псевдослучайных) чисел.
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <iostream>
 
#include <random>
using namespace std;
 
// данная функция вычисляет среднее
float middle(int *ar, int sz) // первый аргумент ссылка на массив, второй размер массива
{
float sum = 0;
int icount=0;
float result = 0;
for (int i=0; i<sz; i++)
    {
    if(ar[i]<0)
        {
        sum +=ar[i];
        icount++;
        //icount << ar[i] << endl;
        }
 
    }
   if(icount>0) result = sum/icount;
   else result = 0;
 
return result;
}
 
// данная функция выводит массив
void showArray(int *ar, int sz){
  cout<<endl;
  for(int i=0; i<sz; i++){
       cout << ar[i] <<" ";
    }
    cout<<endl;
}
 
int main()
{
setlocale(LC_CTYPE, "Russian");
int n=4, m=8, i, j;
//srand((unsigned)time(0));
int *p_ar = new int[n]; // создать указатель на массив размерностью n
 
std::random_device random_device; // Источник энтропии.
std::mt19937 generator(random_device()); // Генератор случайных чисел.
  // (Здесь берется одно инициализирующее значение, можно брать больше)
std::uniform_int_distribution<> distribution(-1000, 2000); // равномерное распределение 
//int x = distribution(generator); // Случайное число.
 
// заполнить массив
for(i=0;i<n;i++)
 {
     p_ar[i] = distribution(generator); // Случайное число.
 }
 cout <<"-----------Array----------"<<endl;
showArray(p_ar, n); // выводим массив
 cout <<"-----------End of Array----------"<<endl;
int result = middle(p_ar , n);
cout << "Результат равен  " << result << endl;
    return 0;
}
Добавлено через 10 минут
Добавьте вашу матрицу.
строчку матрицы запишите во временный массив и передайте в функцию для вычисления среднего.
Насчет двухмерного массива это я ошибся. Сам не дочитал до конца условия.

Добавлено через 39 минут
Вот написал формирование и вывод матрицы.
Вам осталось всё соединить вместе.
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
#include <iostream>
 
using namespace std;
 
void showMatrix(int **ar, int n, int m){
cout<<endl;
  for(int i=0; i<n; i++){// перебор строк
        for(int j=0; j<m; j++) //перебор столбцов
          cout << ar[i][j] <<" ";
  cout<<endl;
    }
 
}
int main()
{
    int n=3,m=4;
int **matr;
matr = new int *[n];
 
for(int i=0; i<n; i++){
    matr[i]=new int[n];
    if(    matr[i]== NULL){
        cout<<"не создан динамический массив!";
        return 0; // выход из программы
    }
    for(int j=0;j<m;j++){
        matr[i][j] = i+j; // тут заполнить нужно будет случайными вставьте генератор случайных чисел
    }
}
 
showMatrix(matr, n , m); // показать матрицу
 
//удаление матрицы
for(int i = 0; i<n; i++)
    delete  matr[i];
delete []matr;
    return 0;
}
0
 Аватар для Nishen
1359 / 857 / 366
Регистрация: 26.02.2015
Сообщений: 3,831
19.03.2017, 21:21
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
47
48
49
50
#include <iostream>
#include <algorithm>
#include <ctime>
 
int main() {
 
    srand(time(NULL));
 
    const size_t size = 10;
    int arr[size];
    float summ = 0;
 
    std::cout
        << "Init data: ";
 
    for (size_t i = 0; i < size; i++) {
 
        arr[i] = rand() % 101 - 50;
 
        std::cout
            << arr[i]
            << ' ';
 
    }
 
    std::cout
        << std::endl;
 
    int count = std::count_if(arr, arr + size, [&summ](int i) { return (i < 0) ? summ += i : false; });
 
    if (count != 0) {
 
        std::cout
            << "Avg = "
            << summ / count;
 
    } else {
 
        std::cout
            << "Avg = 0";
 
    }
 
    std::cout
        << std::endl;
 
    std::system("PAUSE");
    return EXIT_SUCCESS;
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.03.2017, 21:21

Среднее арифметическое отрицательных элементов массива
Дано: Со стандартного потока ввода данных считываются значения одномерного массива размером 20 элементов. Преобразовать исходный массив,...

Вычислить среднее арифметическое отрицательных элементов динамических массивов A и B
Помогите дописать Сформировать массив B(k), записав в него каждый второй элемент массива A(N). Вычислить среднее арифметическое...

Вычислить среднее арифметическое отрицательных элементов каждой строки
Она должна вычислять среднее арифметическое отрицательных элементов. Проверьте на ошибки, пожалуйста #include &lt;iostream&gt; #include...

Посчитать среднее арифметическое отрицательных элементов массива
Помогите пожалуйста!!!! Задача: посчитать среднее арифметическое отрицательных числе массива.

Посчитать среднее арифметическое отрицательных элементов массива
Условие: K (6) - массив действительных чисел. Посчитать среднее арифметическое отрицательных элементов массива. Мой код: ...


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
сукцессия 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`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru