Как найти среднее арифметическое элементов главной диагонали

Boris2288

1 / 1 / 0

Регистрация: 20.02.2019

Сообщений: 50

1

Найти среднее арифметическое элементов главной диагонали

15.03.2019, 18:27. Показов 2581. Ответов 6

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Дан массив {Fij}, i и j — целые, не больше 15. Найти среднее арифметическое элементов главной диагонали.

Почему не правильно считает?

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
#include <iostream>
#include <time.h>
#include <math.h>
#include <stdlib.h>
#include <iomanip>
using namespace std;
 
int main()
{
setlocale(LC_CTYPE,"rus");
int i,j,n;
float C[15][15];
float SRA=0;
srand(time(0));
cout<<"n=";cin>>n;
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
{
C[i][j] = rand() % 100-50;
cout << setw(5)<<C[i][j] << "   ";
}cout<<endl;
}
for(i=0,SRA=0;i<n;i++)
SRA+=C[i][j];
SRA/=n;
cout<<SRA<<endl;
return 0;
}

Изображения

 



0



Модератор

Эксперт С++

13111 / 10381 / 6209

Регистрация: 18.12.2011

Сообщений: 27,766

15.03.2019, 18:56

2

Цитата
Сообщение от Boris2288
Посмотреть сообщение

for (i=1;i<=n;i++)

Тут у Вас индексы от 1 до n (это неправильно)

Цитата
Сообщение от Boris2288
Посмотреть сообщение

for(i=0,SRA=0;i<n;i++)

а тут от нуля до n-1 (это правильно)



0



Boris2288

1 / 1 / 0

Регистрация: 20.02.2019

Сообщений: 50

15.03.2019, 19:31

 [ТС]

3

zss, Не считает. Да и теперь размер матрицы не тот

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
#include <iostream>
#include <time.h>
#include <math.h>
#include <stdlib.h>
#include <iomanip>
using namespace std;
int main()
{setlocale(LC_CTYPE,"rus");
int i,j,n;
float C[15][15];
float SRA=0;
srand(time(0));
cout<<"n=";cin>>n;
for (i=0;i<=n;i++)
{
for (j=1;j<=n;j++)
{
C[i][j] = rand() % 100-50;
cout << setw(5)<<C[i][j] << "   ";
}cout<<endl;
}
for(i=0,SRA=0;i<n-1;i++)
SRA+=C[i][j];
SRA/=n;
cout<<SRA<<endl;
return 0;
}

Изображения

 



0



zss

Модератор

Эксперт С++

13111 / 10381 / 6209

Регистрация: 18.12.2011

Сообщений: 27,766

15.03.2019, 19:43

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
#include <iostream>
#include <time.h>
//#include <math.h>
#include <stdlib.h>
#include <iomanip>
using namespace std;
int main()
{
    setlocale(LC_CTYPE, "rus");
    double C[15][15];
    srand((unsigned)time(0));
    int n;
    cout << "n="; cin >> n;
    if (n > 15)n = 15;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            C[i][j] = rand() % 100 - 50;
            cout << setw(5) << C[i][j] << "   ";
        }
        cout << endl;
    }
    double SRA = 0;
    for (int i = 0; i < n ; i++)
        for (int j = 0; j < n; j++)
           SRA += C[i][j];
    SRA /= n;
    cout << SRA << endl;
    system("pause");
    return 0;
}



0



Boris2288

1 / 1 / 0

Регистрация: 20.02.2019

Сообщений: 50

15.03.2019, 19:48

 [ТС]

5

zss, Опять что-то не правильно)

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
#include <iostream>
#include <time.h>
#include <stdlib.h>
#include <iomanip>
using namespace std;
int main()
{
    setlocale(LC_CTYPE, "rus");
    double C[15][15];
    srand((unsigned)time(0));
    int n;
    cout << "n="; cin >> n;
    if (n > 15)n = 15;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            C[i][j] = rand() % 100 - 50;
            cout << setw(5) << C[i][j] << "   ";
        }
        cout << endl;
    }
    double SRA = 0;
    for (int i = 0; i < n ; i++)
        for (int j = 0; j < n; j++)
        SRA += C[i][j];
 cout << SRA << endl;
    SRA /= n;
    cout << SRA << endl;
    system("pause");
    return 0;
}

Изображения

 



0



zss

Модератор

Эксперт С++

13111 / 10381 / 6209

Регистрация: 18.12.2011

Сообщений: 27,766

15.03.2019, 20:24

6

Лучший ответ Сообщение было отмечено Boris2288 как решение

Решение

Если действительно надо для главной диагонали, то цикл нужен только один:

C++
1
2
3
double SRA = 0;
    for (int i = 0; i < n ; i++)
        SRA += C[i][i];



1



1 / 1 / 0

Регистрация: 20.02.2019

Сообщений: 50

15.03.2019, 20:27

 [ТС]

7

zss, все работает, спасибо ;-)



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

15.03.2019, 20:27

Помогаю со студенческими работами здесь

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

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

Найти среднее арифметическое элементов матрицы, лежащих ниже главной диагонали
Нужно написать программу на С++ или Си, помогите, пожалуйста!
Найти среднее арифметическое…

Найти среднее арифметическое элементов, стоящих на главной диагонали, предварительно упорядочив их
Дана квадратная матрица порядка N. В матрице вычислить среднее арифметическое элементов, стоящих на…

Дана матрица. Найти среднее арифметическое ее элементов, стоящих на главной диагонали
3. Дана матрица А(N*N). Найти среднее арифметическое ее элементов, стоящих на главной диагонали.

Найти среднее арифметическое элементов каждой диагонали матрицы, параллельной главной
Дана квадратная матрица A порядка M. Найти среднее арифметическое элементов каждой ее диагонали,…

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

Или воспользуйтесь поиском по форуму:

7

Matrix84. Дана квадратная матрица $$A$$ порядка $$M$$. Найти среднее арифметическое элементов каждой ее диагонали, параллельной главной (начиная с одноэлементной диагонали $$A_{1,M}$$).

Решение:

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

program Matrix84;

type

  matrix = array [1..10,1..10] of integer;

var

  a:matrix;

  Sum,M, i, j:Integer;

begin

Write(‘M: ‘);

Readln(M);

for  j:=1 to M do

  begin

   writeln(j,‘: ‘);

   for i:=1 to M do

    begin

     Write(i,‘ : ‘);

     Read(a[i,j]);

    end;

  end;

for j:=1 to M1 do

  begin

   Sum:=0;

   for i:=1 to j do

    begin

     Sum:=Sum+a[i,M(ji)];

    end;

   Writeln(Sum/j);

  end;

for j:=M1 downto 1 do

  begin

   Sum:=0;

   for i:=1 to j do

    begin

     Sum:=Sum+a[M(ji),i];

    end;

   Writeln(Sum/j);

  end;

end.

Другие задачи из раздела Matrix можно посмотреть здесь.

Matrix84. Дана квадратная матрица A порядка M. Найти среднее арифметическое элементов каждой ее диагонали, параллельной главной (начиная с одноэлементной диагонали A1,M).

Решение Pascal

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

program Matrix84;

type

matrix = array [1..10,1..10] of integer;

var

a:matrix;

Sum,M, i, j:Integer;

begin

Write(‘M: ‘);

Readln(M);

for  j:=1 to M do

begin

writeln(j,‘: ‘);

for i:=1 to M do

begin

Write(i,‘ : ‘);

Read(a[i,j]);

end;

end;

for j:=1 to M1 do

begin

Sum:=0;

for i:=1 to j do

begin

Sum:=Sum+a[i,M(ji)];

end;

Writeln(Sum/j);

end;

for j:=M1 downto 1 do

begin

Sum:=0;

for i:=1 to j do

begin

Sum:=Sum+a[M(ji),i];

end;

Writeln(Sum/j);

end;

end.

Оцените решение

Загрузка…

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]){
 
    int n;// вводим размер
    printf("Write n:n");
    scanf("%d", &n);
 
    int **a = (int **)calloc(n, sizeof(int *));// создаём матрицу
    for(int i=0;i<n;i++)
        a[i] =  (int *)calloc(n, sizeof(int));
    printf("Write elements of array:n");// вводим элементы матрицы
    for(int i=0;i<n;i++)
        for(int j=0;j<n;j++)
            scanf("%d", &a[i][j]);
    
    double s = 0.0;
    double p = 1.0;
    for(int i=0;i<n;i++){
        s += (double)a[i][i];
        p *= (double)a[i][n-1-i];
    }
    s /= (double) n;
 
    printf("a) %lfnb) %lfnc)n", s, p);
    
    for(int i=0;i<n;i++){
        int min = a[0][i], max = a[i][0];
        for(int j=1;j<n;j++){
            if(min > a[j][i])
                min = a[j][i];
            if(max < a[i][j])
                max = a[i][j];
        }
        printf(" in %d-th column: min = %d, in %d-th row max = %d, there: (max-min)= %d n", i+1, min, i+1, max, max-min);
    }
 
    return 0;
}

Алгоритм вычисления среднего арифметического положительных элементов главной диагонали матрицы

Найди верный ответ на вопрос ✅ «Алгоритм вычисления среднего арифметического положительных элементов главной диагонали матрицы …» по предмету 📙 Информатика, а если ответа нет или никто не дал верного ответа, то воспользуйся поиском и попробуй найти ответ среди похожих вопросов.

Искать другие ответы

Главная » Информатика » Алгоритм вычисления среднего арифметического положительных элементов главной диагонали матрицы

Понравилась статья? Поделить с друзьями:
  • Как мне исправить свое имя в одноклассниках
  • Как найти высоту стены помещения
  • Как найти резервный аккаунт в инстаграме
  • Как найти красивую писю
  • На ноутбуке acer не работает клавиатура как это исправить