Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 08.03.2019
Сообщений: 7
1

Обнулить строки матрицы, среднее арифметическое которых меньше среднего арифметического по всему массиву

09.03.2019, 13:34. Показов 1343. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В двумерном целочисленном массиве размера N на K обнулить строки, среднее арифметическое которых меньше среднего арифметического по всему массиву.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.03.2019, 13:34
Ответы с готовыми решениями:

Матрицы. Подсчитать число столбцов, среднее арифметическое элементов которых меньше среднего арифметического всех элементов
В матрице А(6,6) подсчитать число столбцов, среднее арифметическое элементов которых меньше...

Массив: подсчитать число столбцов, среднее арифметическое элементов которых меньше среднего арифметического всех элементов матрицы.
В матрице A(6, 6) подсчитать число столбцов, среднее арифметическое элементов которых меньше...

Определить номера столбцов, среднее арифметическое элементов которых меньше среднего арифметического элементов во всём массиве
В двумерном массиве случайных чисел (М строк. N столбцов) определить номера столбцов, среднее...

Найти среднее арифметическое элементов массива и обнулить все элементы меньше среднего
Дан массив со случайными двузначными числами. Найти среднее арифметическое массива и обнулить все...

4
35 / 25 / 10
Регистрация: 08.02.2019
Сообщений: 158
09.03.2019, 13:41 2
Что вам конкретно не понятно в задаче, есть код?
0
0 / 0 / 0
Регистрация: 08.03.2019
Сообщений: 7
09.03.2019, 13:45  [ТС] 3
Helpdes, именно под данную задачу нужно исправить
C++ (Qt)
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
#include <stdio.h>
#define K 3
#define N 4
int main( void )
{
int x[K][N]; // массив из K на N элементов
int aver; // среднее арифметическое
int i, j;
// ввод массива
for( i = 0; i < K; i++ )
for( j = 0; j < N; j++ )
scanf("%d", &x[i][j]);
// вычисление среднего арифметического значения
aver = 0;
for( i = 0; i < K; i++ )
 
for( j = 0; j < N; j++ )
aver = aver + x[i][j];
aver = aver / (K*N);
// выборочное обнуление элементов
for( i = 0; i < K; i++ )
{
for( j = 0; j < N; j++ )
{
if( x[i][j] > aver )
x[i][j] = 0;
}
}
// вывод массива
for( i = 0; i < K; i++ )
{
for( j = 0; j < N; j++ )
printf("%4d ", x[i][j]);
printf("\n");
}
return 0;
}
0
35 / 25 / 10
Регистрация: 08.02.2019
Сообщений: 158
09.03.2019, 14:13 4
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include <iostream>
#include <ctime>
#include <cstdlib>
 
using namespace std;
    
 
int main(){
 
    srand(time(NULL));
    int n = 0; // ×èñëî ñòðîê
    int k = 0; // ×èñëî ñòîëáöîâ
    
    cout <<  "N: " << endl;
    cin >> n;
    cout << "K: " << endl;
    cin >> k;
    
    int ar[n][k]; // Èñõîäíàÿ ìàòðèöà
    
    for(int i = 0; i < n; i++){ // Èíèöèàëèçàöèÿ ìàññèâà ñëó÷àéíûìè ÷èñëàìè
        for(int j = 0; j < k; j++){
            ar[i][j] = rand() % 10;
        }
    }
    
    for(int i = 0; i < n; i++){ // Âûâîä èñõîäíîé ìàòðèöû íà ýêðàí
        for(int j = 0; j < k; j++){
            if(j != k-1){
                cout << ar[i][j];
            }
            else{
                cout << ar[i][j] << endl;
            }   
        }
    }
    
    int sum = 0; // Ñóììà ýëåìåíòîâ ìàòðèöû
    int a = 0; // Ñðåäíåå àðèôìåòè÷åñêîå âî âñåé ìàòðèöå
    for(int i = 0; i < n; i++){ // Íàõîäèì ñóììó âñåõ ýëåìåíòîâ ìàòðèöè
        for(int j = 0; j < k; j++){
            sum += ar[i][j];
        }
    }
    
    a = sum / (n * k); // Íàøëè ñðåäíåå àðèôìåòè÷åñêîå
    
    cout << "A = " << a << endl;
    
    int sumi = 0; // Ñóììà ýëåìåíòîâ â ñòðîêå
    int ai = 0; // Ñðåäíåå àðèôìåòè÷åñêîå â ñòðîêå
    for(int i = 0; i < n; i++){ // Íàõîäèì ñðåäíåå àðèôìåòè÷åñêîå â ñòðîêàõ, åñëè îíî ìåíüøå òîãäà îáíóëèì ýòè ñòðîêè
        for(int j = 0; j < k; j++){
            sumi += ar[i][j];
        }
        ai = sumi / k; // Íàøëè ñðåäíåå àðèôìåòè÷åñêîå â ñòðîêå
        if(ai < a){
            // Îáíóëÿåì ñòðîêó
            for(int j = 0; j < k; j++){
                ar[i][j] = 0;
            }
        }
        sumi = 0; // Íå çàáûâàåì îáíóëèòü
        ai = 0;
    }
    
    cout << endl; // Îòñòóïèì ñòðîêó
    
    for(int i = 0; i < n; i++){ // Âûâîä ðåçóëüòàòîâ íà ýêðàí
        for(int j = 0; j < k; j++){
            if(j != k-1){
                cout << ar[i][j];
            }
            else{
                cout << ar[i][j] << endl;
            }   
        }
    }
    
    system("pause");
    return 0;
}
1
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
09.03.2019, 16:25 5
Helpdes, среднее арифметическое - это значение типа double

SKripAXE,
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
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
 
int main()
{
    srand((int)time(0));
    int N, K, sum=0, sum_row;
    double delta, eps=1e-9;
    cout <<"N="; cin >>N;
    cout <<"K="; cin >>K;
    
      int **a = new int*[N]; 
    for (int i = 0; i < N; i++)
      a[i]=new int[K];
    
    for (int i = 0; i < N; i++)
    {
    for (int j = 0; j < K; j++)
    {
    a[i][j]=rand()%9 + 1;
    sum+=a[i][j];
    cout <<a[i][j]<<" ";
    }
    cout <<"\n";
    }
    
    delta=(double)sum/(N*K);
    cout << "delta=" << delta << "\n";
    
    for (int i = 0; i < N; i++)
    {
    sum_row=0;    
    for (int j = 0; j < K; j++) 
    sum_row+=a[i][j];
    
    if ((double)sum_row/K-delta<eps)
    for (int j = 0; j < K; j++)
    a[i][j]=0;  
    }
    
    for (int i = 0; i < N; i++)
    {
    for (int j = 0; j < K; j++) 
    cout <<a[i][j]<<" ";    
    cout <<"\n";
    }
 
    for (int i = 0; i < N; i++)
    delete[]a[i];
    delete[]a;
 
system("pause");
return 0;
}
0
09.03.2019, 16:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.03.2019, 16:25
Помогаю со студенческими работами здесь

Определить номера столбцов, в которых среднее арифметическое его элементов меньше общего по массиву
Помогите дорешать В двумерном массиве произвольных чисел B (4,7) определить номера столбцов, в...

Оформить в виде функции вычисление среднего арифметического тех элементов матрицы, значения которых больше Х и меньше Y
ЗадаН массив целого типа А. Оформить в виде функции вычисление среднего арифметического тех...

Подсчитать число элементов матрицы, значения которых меньше среднего арифметического значений элементов матриц
Дана прямоугольная матрица А(n * m). Подсчитать число элементов матрицы, значения которых меньше...

Количество строк матрицы, в которых среднее арифметическое элементов меньше нуля
Написать программу, в которой будет реализована процедура вычисления кол-ва строк двумерного...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru