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

Найти среднее значение элементов матрицы выше главной и обратной диагонали

21.04.2018, 12:40. Показов 1200. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вот задание: Дана квадратная матрица целых чисел размером N<=12. Заполнить матрицу случайными числами от 0 до 100. Найти среднее значение выше главной и обратной диагонали. На языке С++.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.04.2018, 12:40
Ответы с готовыми решениями:

Матрицы: заполнить случайными числами от 0 до 100, найти среднее значение выше главной и обратной диагонали
Дана квадратная матрица целых чисел размером N&lt;=12. Заполнить матрицу случайными числами от 0 до...

Подсчитать среднее арифметическое значение нечетных элементов матрицы, расположенных выше главной диагонали
1) В квадратной матрице, элементами которой являются целые числа, подсчитать среднее арифметическое...

Найти среднее арифметическое элементов матрицы, находящихся выше главной диагонали
Задание - Введите матрицу, содержащую 4 строки и 4 столбца вещественных значений. Найдите...

Найти среднее значение элементов главной диагонали матрицы
Найдите среднее значение элементов главной диагонали матрицы.

7
392 / 262 / 193
Регистрация: 02.05.2017
Сообщений: 1,003
21.04.2018, 13:27 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
#include <iostream>
#include <iomanip>
#include <ctime>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    srand(time(0));
    int n(0),counter(0),counter_1(0);
    double sum(0),sum_1(0);
 
    cout << "Enter n : ";
    cin >> n;
 
    int ** matrix = new int *[n];
    for(int i = 0;i<n;++i)matrix[i] = new int[n];
 
    for(int i = 0;i<n;++i){
        for(int j = 0;j<n;++j){
            matrix[i][j] = rand() % 99+1;
            cout << setw(5) << matrix[i][j];
            if(j>i){
                ++counter;
                sum += matrix[i][j];
            }
            if(j<n-i-1){
                ++counter_1;
                sum_1 += matrix[i][j];
            }
        }
        cout << "\n";
    }
    cout << "higher main diagonal : " << double(sum/counter) << "\n";
    cout << "higher unmain ( :D ) diaginal : " << double(sum_1/counter_1) << "\n";
 
    for(int i = 0;i<n;++i)delete []matrix[i];
    delete [] matrix;
 
    cout << endl;
    return 0;
}
0
11 / 0 / 0
Регистрация: 09.04.2018
Сообщений: 48
25.04.2018, 17:20  [ТС] 3
Цитата Сообщение от LegionK Посмотреть сообщение
srand(time(0));
указывает на ошибку в 9 строке
0
11 / 0 / 0
Регистрация: 09.04.2018
Сообщений: 48
25.04.2018, 17:46  [ТС] 4
Вот задание : Дана квадратная матрица целых чисел размером N<=12. Заполнить матрицу случайными числами от 0 до 100. Найти среднее значение выше главной и обратной диагонали.
Помогите найти ошибку!
Вот мой код :
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
#include <iostream>
#include <iomanip>
#include <ctime>
#include <cstdlib>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Rus");
    int n = 0, a = 0, b = 0;
    double sr = 0, sr_1 = 0;
    cout<<"Введите n=";
    cin>>n;
    int **matrix = new int *[n];
    for (int i = 0; i < n; i ++)
        matrix[n] = new int [n];
    cout<<"Матрица: "<<endl;
    for (int i = 0; i < n; i ++)
    {
        for (int j = 0; j < n; j ++)
        {
            matrix[i][j] = rand() % 101;
        }
        cout<< setw(3) << matrix[i][j];
        if (j > i)
        {
            a ++;
            sr += matrix[i][j];
        }
        if (j < n-1)
        {
            b ++;
            sr_1 += matrix[i[j];
        }
    }
    cout<<"Среднее значение выше главной диагонали: "<< double (sr/a)<<endl;
    cout<<"Среднее значение выше обратной диагонали: "<< double (sr_1/b)<<endl;
    for ( int i = 0; i < n; i ++)
    delete []matrix[i];
    delete []matrix;
    return 0;
}
0
0 / 0 / 0
Регистрация: 30.10.2014
Сообщений: 8
25.04.2018, 18:29 5
C++
1
2
3
4
5
for (int i = 0; i < n; i ++)
        matrix[n] = new int [n];
//надо matrix[i] = new int [n];
sr_1 += matrix[i[j];
//скобку закрой
0
11 / 0 / 0
Регистрация: 09.04.2018
Сообщений: 48
25.04.2018, 19:44  [ТС] 6
теперь ошибка в 24 строке :
C++
1
cout<< setw(3) << matrix[i][j];
0
0 / 0 / 0
Регистрация: 30.10.2014
Сообщений: 8
25.04.2018, 22:47 7
цикл по j закрыт а вы пытаетесь распечатать элемент матрицы

Добавлено через 2 минуты
отдельно сделайте распечатку
C++
1
2
3
4
5
6
7
8
for (int i = 0; i < n; i ++)
    {
        for (int j = 0; j < n; j ++)
        {
        cout<< setw(n) << matrix[i][j];
        }
cout<<endl;
}
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
26.04.2018, 00:05 8
Цитата Сообщение от myrlika Посмотреть сообщение
указывает на ошибку в 9 строке
программа LegionK запускается нормально, малость не тот диапазон правда ну то такое, а так запустится ? (если нет ищите ошибку у себя). Надеюсь что обратная диагональ это побочная.

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
#include <iostream>
#include <ctime>
using namespace std;
 
int main()
{
    srand((int)time(0));
    int n, sum1=0, sum2=0;
    do
    {
    cout <<"Enter n: "; cin >>n;
    if (n<1 || n>12) cout <<"1<=n<=12 !!! Repeat please..."<<endl;
    }
    while (n<1 || n>12);
    int m=(n*n-n)/2;
    
      int **a = new int*[n];
    for (int i = 0; i < n; i++)
         a[i]=new int[n];
    
    for (int i = 0; i < n; i++)
    {
    for (int j = 0; j < n; j++)
    {
      a[i][j]=rand()%101;
      cout <<a[i][j]<<" ";
    }
    cout <<endl;
    }
    cout <<endl;
    
    for (int i = 0; i < n - 1; i++)    
    for (int j = i + 1; j < n; j++)    
    sum1+=a[i][j];  
    
    for (int i = 0; i < n - 1; i++)        
    for (int j = n-2-i; j >=0; j--)    
    sum2+=a[i][j];  
    
    cout <<"delta1="<<(double)sum1/m<<"\ndelta2="<<(double)sum2/m<<"\n";
 
    for (int i = 0; i < n; i++)
    delete [] a[i];
    delete [] a;
 
system("pause");
return 0;
}
Добавлено через 6 минут
myrlika, я вот только подумал что наши программы неправильны, и нужно искать не два значения, а одно, т.е. одновременно выше главной и выше побочной - без нижнего треугольника, как Вы считаете как автор темы ?

Если это так напишите, будем исправляться
0
26.04.2018, 00:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.04.2018, 00:05
Помогаю со студенческими работами здесь

Среднее арифметическое элементов матрицы выше главной диагонали
Напишите программу, которая заполняет матрицу А(3х4) случайными числами от -5 до 5 и далее...

Найти максимум тех чисел, которые расположены ниже главной и выше обратной диагонали матрицы
Напишите пожалуйста программу , а то вообще не вникаю как делать. По условию задачи : Дана...

Найти среднее арифметическое элементов матрицы, лежащих выше дополнительной (обратной) диагонали!
срочно помогите написать программу,мне нужно найти среднее арифметическое элементов матрицы,...

Подпрограммы: среднее арифметическое значение положительных элементов матрицы, расположенных выше главной диагонали
Заданы массивы Y(4,4) и Z(8,8) .Для каждого из них вычислить среднее арифметическое значение...


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

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

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