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

Двумерный массив.Найти среднее арифметическое по столбцам.Столбец с наибольшим средним записать отдельно. В исходной матрице заменить его нулями - C++

Восстановить пароль Регистрация
 
Аня Гордеева
0 / 0 / 0
Регистрация: 19.01.2013
Сообщений: 18
20.01.2013, 22:44     Двумерный массив.Найти среднее арифметическое по столбцам.Столбец с наибольшим средним записать отдельно. В исходной матрице заменить его нулями #1
Найти среднее арифметическое по столбцам произвольной матрицы. Столбец с наибольшим средним записать отдельно. В исходной матрице заменить его нулями.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2013, 22:44     Двумерный массив.Найти среднее арифметическое по столбцам.Столбец с наибольшим средним записать отдельно. В исходной матрице заменить его нулями
Посмотрите здесь:

Дан двумерный массив n*m Найти среднее арифметическое S его элементов и заменить этим числом элементы второй строки C++
Все элементы с наибольшим значением в целочисленной квадратной матрице порядка 10 заменить нулями C++
C++ Ввести по строкам с клавиатуры двумерный массив и вычислить среднее арифметическое его элементов
C++ Ввести по строкам с клавиатуры двумерный массив и вычислить среднее арифметическое его элементов
Ввести по строкам с клавиатуры двумерный массив и вычислить среднее арифметическое его элементов C++
C++ Ввести по строкам с клавиатуры двумерный массив и вычислить среднее арифметическое его элементов
Все элементы с наибольшим по модулю значением в целочисленной квадратной матрице заменить нулями C++
Все элементы с наибольшим значением в данной матрице заменить нулями C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Sergey_B
163 / 163 / 14
Регистрация: 08.01.2013
Сообщений: 335
21.01.2013, 11:52     Двумерный массив.Найти среднее арифметическое по столбцам.Столбец с наибольшим средним записать отдельно. В исходной матрице заменить его нулями #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
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include <iostream>
#include <locale.h>
#include <iomanip>
 
 
using namespace std;
 
void main()
{
    setlocale(LC_ALL, "Russian");
 
    int **InputMatrix(int row, int column); //ф-ция заполнения матрицы
    void ShowMatr(int row, int column, int **matrix); //ф-ция вывода матрицы
    void MatrixMain(int row, int column, int **matrix); //ф-ция заменяющая столбец с макс. сред. ариф. нулями
 
    int n=0,m=0;
    cout<<"\nВведите размерность матрицы:";
    while (n<=0)
    {
        cout<<"\nВведите количество строк: ";
        cin>>n;
    }
    while(m<=0)
    {
        cout<<"\nВведите количество столбцов: ";
        cin>>m;
    }
    cout<<"\nЗаполните матрицу\n";
    int **matrix = InputMatrix(n,m);
    cout<<"\nИсходная матрица\n";
    ShowMatr(n,m,matrix);
    //выполняем рассчеты
    MatrixMain(n,m,matrix);
 
 
}
 
 
//ф-ция заполнения матрицы
int **InputMatrix(int row, int column)
{
    int **matrix = new int* [row];
    for (int i=0; i<row; i++)
    {
        matrix[i]=new int[column];
        for (int j=0; j<column; j++)
        {
            cout<<"Введите ("<<i<<","<<j<<") элемент: ";
            cin>>matrix[i][j];
        }
    }
    return matrix;
}
 
   //ф-ция вывода матрицы
    void ShowMatr(int row, int column, int **matrix)
    {
        for(int i=0;i<row;i++)
        {
            for(int j=0;j<column;j++)
                cout<<setw(5)<<*(*(matrix+i)+j)<<ends;
            cout<<endl;
        }
    }
 
    void MatrixMain(int row, int column, int **matrix)
    {
        float *masMean = new float[column]; //массив для хранения значений сред. ариф. 
        for (int i=0; i<column; i++)
        {
            float mean = 0.0f;
            for (int j=0; j<row; j++)
            {
                mean+=matrix[j][i];
            }
            mean=mean/(float)row; //среднее арифметическое
            masMean[i]=mean; //записываем в массив полученый результат
            cout<<"\nСтолбец "<<i<<" - Среднее арифметическое = "<<mean;
        }
        //в массиве ищем индекс столбеца с наибольшим средним
        int index=0;
        float max=masMean[0];
        for (int i=0; i<column; i++)
        {
            if (masMean[i]>max)
            {
                max=masMean[i];
                index=i;
            }
        }
        //отдельно выведем столбец с наибольшим средним
        cout<<"\nCтолбец с наибольшим средним:\n";
        for (int i=0; i<row; i++)
        {
            cout<<matrix[i][index];
            cout<<endl;
        }
        //заменим этот столбец в исходной матрице 0
        for (int i=0; i<row; i++)
        {
            matrix[i][index]=0;
        }
        cout<<"\nПреобразованная матрица:\n";
        ShowMatr(row, column, matrix);
    }
Yandex
Объявления
21.01.2013, 11:52     Двумерный массив.Найти среднее арифметическое по столбцам.Столбец с наибольшим средним записать отдельно. В исходной матрице заменить его нулями
Ответ Создать тему
Опции темы

Текущее время: 09:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru