0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 9
1

Матрица m x n. Найти макс значение среди средних значений для каждой строки матрицы. Вернуть номер строки

12.01.2014, 16:52. Показов 1029. Ответов 1
Метки нет (Все метки)

Здравствуйте. Код есть, но ведет себя не стабильно. Выводит не то, что нужно. Прошу помочь.

matrix.cpp
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
#include <iostream>
#include "matrix.h"
 
using namespace std;
 
Matrix::Matrix(int rows, int cols){
    this->rows = rows;
    this->cols = cols;
 
    mas = new int*[rows];
 
    for(i=0; j<rows; i++){
        mas[i] = new int[cols];
        for(j=0; j<cols; j++){
            mas[i][j]=0;
        }
    }
}
 
 
void Matrix::Middle(int rows){
    this->rows = rows;
    for(i = 0; i < cols; i++)
        max += mas[0][i];
    for(i = 1; i < rows; i++){
        tmp = 0;
        for(j = 0; j< cols; j++)
            tmp = mas[i][j];
        if(tmp > max){
            max = tmp;
            nj = j;
        }
    }
    max/=cols;
}
 
 
void Matrix::Fill(){
 
    for(i = 0; i < rows; i++){
        for(j = 0; j < cols; j++){
            mas[i][j] = (int)rand();
        }
        Middle(i);
    }
    return;
}
 
void Matrix::Display(){
    cout<<endl<<"Matrix"<<endl;
    for(i = 0; i < rows; i++){
        printf("Строка:%i> ", i+1);
        for(j = 0; j < cols; j++){
            printf("%d ", mas[i][j]);
        }
    }
    cout<<max<<endl;
    cout<<nj<<endl;
    return;
}
matrix.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#pragma once
 
class Matrix{
private:
    int i, j;
    int rows;
    int cols;
    int nj;
    int **mas;
    int max;
    int tmp;
public:
    Matrix(int rows, int cols);
    void Fill();
    void Middle(int rows);
    void Display();
};
main.cpp
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
//создать класс, для представления и обработки данных по заданию.
//обработка эл прямоугольной матрицы MxN
//найти макс значение среди средних значений для каждой строки матрицы. Вернуть номер строки.
 
#include <iostream>
#include "matrix.h"
 
using namespace std;
 
void main(){
 
    setlocale(0,"");
 
    int rows, cols;
    //Вводим строки и столбцы
    cout<<"Количество строк: ";
    cin>>rows;
    cout<<"Количество столбцов: ";
    cin>>cols;
 
    Matrix Matrix(rows, cols);//Передаем данные
    Matrix.Fill();//Находим максимальное значение среди средних значений для каждой строки матрицы
    Matrix.Display();//Отображаем
 
    system("pause");
}
Добавлено через 2 часа 7 минут
Некоторая замена
matrix.h
C++
1
int nj;
на
C++
1
int ni;
matrix.cpp
C++
1
nj = j;
на
C++
1
ni++;
и
C++
1
cout<<nj<<endl;
на
C++
1
cout<<ni<<endl;
Заметил, что оно тупо не хочет выводить матрицу
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.01.2014, 16:52
Ответы с готовыми решениями:

Найти наибольшее значение среди средних значений для каждой строки матрицы
Выполнить обработку элементов прямоугольной матрицы А, имеющей N строк и М столбцов. Найти...

Массив: Найти наибольшее значение среди средних значений для каждой строки матрицы
1.Выполнить обработку элементов прямоугольной матрицы A, имеющей Nстрок и M столбцов. Найти...

Матрица. Подсчитать сумму каждой строки матрицы и найти максимальное значение среди полученных сумм
Ребята, залёт полный, сроки горят, нужна помощь, спасайте плз. Дана действительная матрица...

Дана действительная матрица. Сформировать одномерный массив из средних арифметических значений каждой строки матрицы
Дана действительная матрица mxn.сформировать одномерный массив из средних арифметических значений...

1
Форумчанин
Эксперт CЭксперт С++
8194 / 5044 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
12.01.2014, 17:25 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
#include <cstdlib>
#include <ctime>
#include <iomanip>
#include <iostream>
 
int main()
{
    int M, N;            // размеры матрицы
    int **A;             // сама матрица
    double maxAve;       // максимальное среднее значение
    int indexMaxAve = 0; // индекс строки с максимальным средним значением
    std::cout << "Enter M: ";
    std::cin >> M;
    std::cout << "Enter N: ";
    std::cin >> N;
 
    std::srand(time(0)); // инициализируем ГПСЧ
    // выделяем память, заполняем случайными числами и выводим на экран
    A = new int*[M];
    for (int i=0; i < M; i++)
    {
        A[i] = new int[N];
        double sum = 0;
        for (int j=0; j < N; j++)
        {
            A[i][j] = rand() % 100;
            std::cout << std::setw(2) << A[i][j] << " ";
            sum += A[i][j];
        }
        std::cout << std::endl;
        // подсчет среднего, сравнение с текущим максимальным знаением среднего
        double ave = sum / N;
        if (i == 0)
            maxAve = ave;
        else if (maxAve < ave)
        {
            maxAve = ave;
            indexMaxAve = i;
        }
        // фактически память больше не нужна - освобождаем её
        delete[] A[i];
    }
    delete[] A;
 
    std::cout << "\nNumber of line with max ave: " << indexMaxAve + 1
              << " with " << maxAve << std::endl;
}
по классам сами разобьете
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.01.2014, 17:25
Помогаю со студенческими работами здесь

Отсортировать строки матрицы по убыванию средних арифметических значений элементов каждой строки
Привет всем,прошу помочь в решении задачи,так как не умею решать задания на матрицы. Дана...

Матрица: среди элементов каждой строки, отличных от заданного В, найти наибольший элемент и его номер
Задана матрица размерности M×N. Среди элементов каждой строки, отличных от заданного В, найти...

Дана матрица B[N,M].Найти в каждой строке матрицы макс. и мин. элементы и поменять их местами первым и последним элементом строки соответственно
ребята помогите плиз!!! Дана матрица B.Найти в каждой строке матрицы макс. и мин. элементы и...

Найти наибольший элемент среди наименьших значений каждой строки матрицы
Пусть дана вещественная матрица размером n x m, все элементы которой различны. В каждой строке...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru