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

Определить номер подматрицы, среднее арифметическое элементов которой имеет наибольшее значение. - C++

Восстановить пароль Регистрация
 
-danya_
0 / 0 / 0
Регистрация: 23.01.2011
Сообщений: 3
17.01.2013, 20:08     Определить номер подматрицы, среднее арифметическое элементов которой имеет наибольшее значение. #1
Помогите пожалуйста решить задачу, очень нужно

В квадратной матрице A(m,n) рассмотреть квадратные подматрицы размерностью 1, 2, ... , n, причем для всех подматриц левым верхним элементом является элемент А00 исходной матрицы. Определить номер подматрицы, среднее арифметическое элементов которой имеет наибольшее значение.

Буду очень благодарна
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2013, 20:08     Определить номер подматрицы, среднее арифметическое элементов которой имеет наибольшее значение.
Посмотрите здесь:

C++ Массив: Определить строку, в котором среднее арифметическое положительных элементов имеет наименьшее значение
Найти непрерывный участок из 10 элементов, который имеет наибольшее среднее значение элементов C++
Вычислить наименьшее, наибольшее и среднее арифметическое значение функции. C++
Определить максимальное и среднее арифметическое значение элементов массива C++
Найти непрерывный участок из 10 элементов, который имеет наибольшее среднее значение элементов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
programmer_11
94 / 69 / 5
Регистрация: 08.10.2011
Сообщений: 130
17.01.2013, 20:26     Определить номер подматрицы, среднее арифметическое элементов которой имеет наибольшее значение. #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
#include <iostream>
 
using namespace std;
 
int main()
{
int n,m,**a;//n-число строк,m-число столбцов,а-массив
//Ввод числа строк и столбцов
cout << "Vvedite n: ";
cin >> n;
cout << "Vvedite m: ";
cin >> m;
a=new int*[n];
for (int i=0;i<n;i++)
{
a[i]=new int[m];
for (int j=0;j<m;j++)
{
cout << "Vvedite a" << "[" << i+1 << "][" << j+1 << "]: ";
cin >> a[i][j];
}
}
float maxs=0;
int ind;
for (int i=1;i<=n;i++)
{
int s=0;
for (int i1=0;i1<i;i1++)
for (int j1=0;j1<i;j1++)
s+=a[i1][j1];
if ((float)s/(i*i)>maxs)
{
maxs=(float) s/(i*i);
ind=i;
}
}
cout << ind;
for (int i=0;i<n;i++)
delete a[i];
delete a;
cin.get();
cin.get();
return 0;
}
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
17.01.2013, 20:32     Определить номер подматрицы, среднее арифметическое элементов которой имеет наибольшее значение. #3
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
#include <iostream>
#include "limits.h"
 
using namespace std;
 
 
struct maxSum{
    maxSum(int index_,double sum_){index = index_ ; sum = sum_;};
    int index;
    double sum;
};
 
int main()
{
        int n;
        int **array;
        maxSum mean(0,INT_MIN);
        system("chcp 1251");
        cout << "Введите размер матрицы " << endl;
        cin >> n;
 
        array = new int*[n];
 
        for (int i = 0; i < n; i++) {
            array[i] = new int[n];
            for (int j = 0; j < n; j++) {
                cout << "Введите элемент " << endl;
                cin >> array[i][j];
            }
        }
 
        cout << endl;
 
        for (int i = 0; i < n; i++) {
                for (int j = 0; j < n; j++) {
                    cout << array[i][j] <<" ";
                }
                cout << endl;
            }
 
        for (int k = 1; k < n+1; k++) {
            double sum = 0;
            for (int i = 0; i < k; i++) {
                for (int j = 0; j < k; j++) {
                    sum += array[i][j];
                }
            }
            sum /= k;
            if (sum > mean.sum) {
                mean.sum = sum;
                mean.index = k;
            }
        }
        cout << "Наибольшее ср арифметическое "<< mean.sum << endl;
        cout << "Номер подматрицы " << mean.index << endl;
        for (int i = 0; i < n; i++) {
                    delete[] array[i];
            }
        delete[] array;
 
        system("pause");
        return 0;
 
}
ловите

Добавлено через 5 минут
programmer_11, если я задам матрицу полностью отрицательную то мне выведет ответ 0
programmer_11
94 / 69 / 5
Регистрация: 08.10.2011
Сообщений: 130
17.01.2013, 20:58     Определить номер подматрицы, среднее арифметическое элементов которой имеет наибольшее значение. #4
Nixy, спасибо, исправил ошибку, вот.
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
#include <iostream>
 
using namespace std;
 
int main()
{
int n,m,**a;//n-число строк,m-число столбцов,а-массив
//Ввод числа строк и столбцов
cout << "Vvedite n: ";
cin >> n;
cout << "Vvedite m: ";
cin >> m;
a=new int*[n];
for (int i=0;i<n;i++)
{
a[i]=new int[m];
for (int j=0;j<m;j++)
{
cout << "Vvedite a" << "[" << i+1 << "][" << j+1 << "]: ";
cin >> a[i][j];
}
}
float maxs=(float) a[0][0];
int ind=1;
for (int i=2;i<=n;i++)
{
int s=0;
for (int i1=0;i1<i;i1++)
for (int j1=0;j1<i;j1++)
s+=a[i1][j1];
if ((float) s/(float)(i*i)>maxs)
{
maxs=(float)s/(float)(i*i);
ind=i;
}
}
cout << ind;
for (int i=0;i<n;i++)
delete a[i];
delete a;
cin.get();
cin.get();
return 0;
}
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
17.01.2013, 21:03     Определить номер подматрицы, среднее арифметическое элементов которой имеет наибольшее значение. #5
В квадратной матрице A(m,n)
если матрица квадратна то m == n
Yandex
Объявления
17.01.2013, 21:03     Определить номер подматрицы, среднее арифметическое элементов которой имеет наибольшее значение.
Ответ Создать тему
Опции темы

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