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

Найти среднее арифметическое положительных элементов главной и побочной диагоналей матрицы - C++

Восстановить пароль Регистрация
 
Otar4ik
3 / 3 / 0
Регистрация: 20.10.2013
Сообщений: 94
21.04.2014, 12:49     Найти среднее арифметическое положительных элементов главной и побочной диагоналей матрицы #1
Сразу скажу что не получается,не могу понять куда здесь впихивать условие проверки положительных чисел,и главное когда запускается студия сразу просит или пропустить или прервать,жёлтая стрелка указывает на if (j=n-i+1).ну и рандомно не выводит.

и на действительных числах он ругается,пытался сначала сделать int.Размер матрицы (5Х5).

Листинг программы:

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
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <math.h>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    int i,j,n;
    int x[5][5];
 
    cout<<"Наполнение массива случайными числами"<<endl;
    for(i=0; i<=5; i++)
    {
        for(j=0; j<=5; j++)
        {
            x[i][j]=rand()%10;
            cout<<i<<j<<x[i][j];
        }
    }
    int sum = 0;
    int sum1 = 0;
    int count = 0;
 
    for(i=0; i<=5; i++)
    {
        for(j=0; j<=5; j++)
        {
            if(5>1)
            {   
                if (i=j)
                {
                    sum += x[i][j];
                    count++;
                    cout<<"Сумма положительных элементов главной диагонали = "<<sum<<endl;
                } 
                if (j=n-i+1)
                {
                    sum += x[i][j];
                    count++;
                    cout<<"Сумма положительных элементов побочной диагонали = "<<sum1<<endl;
                }     
            }   
        }
    }
    sum = sum/count;
    sum1= sum1/count;
    cout<<"Среднее арифметическое положительных чисел главной диагонали равно : "<<sum<<endl;
    cout<<"Среднее арифметическое положительных чисел побочной диагонали равно : "<<sum1<<endl;
    system("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2014, 12:49     Найти среднее арифметическое положительных элементов главной и побочной диагоналей матрицы
Посмотрите здесь:

C++ Среднее арифметическое положительных элементов м-цы, расположенных выше ее побочной диагонали
Массив: Найти среднее арифметическое из всех положительных элементов этой матрицы C++
Найти среднее арифметическое элементов каждой диагонали матрицы, параллельной побочной C++
Массив: Найти среднее арифметическое элементов матрицы и сумму элементов тех строк матрицы, в которых отрицателен элемент главной диагонали. C++
C++ Найти среднее арифметическое положительных элементов каждого столбца матрицы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Керра
Модератор
 Аватар для Керра
1270 / 438 / 45
Регистрация: 24.08.2011
Сообщений: 2,123
21.04.2014, 13:01     Найти среднее арифметическое положительных элементов главной и побочной диагоналей матрицы #2
if (j=n-i+1)
это же присваивание. нельзя изменять переменную цикла.
кстати, j все равно спокойно вычисляется, зачем два цикла?
должно быть две переменные count1 и count2, потому что количество положительных чисел на главной и побочной диагонали разное.
проверка:
C++
1
2
if (x[i][i] > 0) ...
if (x[i][n-i+1] > 0) ...
и кстати, переменной n не присвоено значение
Otar4ik
3 / 3 / 0
Регистрация: 20.10.2013
Сообщений: 94
21.04.2014, 13:30  [ТС]     Найти среднее арифметическое положительных элементов главной и побочной диагоналей матрицы #3
Сделал как вы сказали,удалил цикл всё под 1 сделал,ну условные то я по отдельности оставил ну и объявил переменные m=5,n=5.
Окно моргнет и сразу прервать или пропустить просит.

что-то я в цикле накосячил,но где не могу понять.

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
int _tmain(int argc, _TCHAR* argv[])
{
    int i,j;
    int m=5;
    int n=5;
    int x[5][5];
 
    cout<<"Наполнение массива случайными числами"<<endl;
    for(i=0; i<=5; i++)
    {
        for(j=0; j<=5; j++)
        {
            x[i][j]=rand()%10;
            cout<<i<<j<<x[i][j];
        }
    }
    int sum = 0;
    int sum1 = 0;
    int count = 0;
    int count1 = 0;
 
    ///for(i=0; i<=5; i++)
    ///{
        for(j=0; j<=5; j++)
        {   
                if (x[i][i] > 0)
                {
                    sum += x[i][j];
                    count++;
                    cout<<"Сумма положительных элементов главной диагонали = "<<sum<<endl;
                } 
                if (x[i][n-i+1] > 0)
                {
                    sum += x[i][j];
                    count++;
                    cout<<"Сумма положительных элементов побочной диагонали = "<<sum1<<endl;
                }        
        }
    sum = sum/count;
    sum1= sum1/count1;
    cout<<"Среднее арифметическое положительных чисел главной диагонали равно : "<<sum<<endl;
    cout<<"Среднее арифметическое положительных чисел побочной диагонали равно : "<<sum1<<endl;
    system("pause");
    return 0;
}
Керра
Модератор
 Аватар для Керра
1270 / 438 / 45
Регистрация: 24.08.2011
Сообщений: 2,123
21.04.2014, 13:53     Найти среднее арифметическое положительных элементов главной и побочной диагоналей матрицы #4
конечно накосячил. вопрос такой: вот тут x[i][n-i+1] у нас какая переменная присутствует в координатах? i или j?

и еще: m и n - это размеры массива. так зачем ты везде пишешь 5, если у тебя уже есть для этого константы? кстати, сделай их константами. размеры задаются именованными константами, чтобы если ты захочешь изменить размер, то меняешь в одном месте и готово. кстати, матрица квадратная, поэтому только n должно быть.
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
21.04.2014, 14:43     Найти среднее арифметическое положительных элементов главной и побочной диагоналей матрицы #5
Otar4ik,
C++
1
for(i=0; i<=5; i++)
должно быть до 5 не включительно
Otar4ik
3 / 3 / 0
Регистрация: 20.10.2013
Сообщений: 94
21.04.2014, 21:15  [ТС]     Найти среднее арифметическое положительных элементов главной и побочной диагоналей матрицы #6
Вот уже по другому,но результат такой же,пока решаю с главной диагональю.

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
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <math.h>
 
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"Russian");
     const int x = 5, y = 5;
  double matr[x][y];
  double kol,s,sr;
  for(int i = 0; i < x; ++i)
  {
    for(int j = 0; j < y; ++j)
    {
      matr[i][j] = static_cast<double>(rand() % 100) / 10;
      std::cout << std::setw(7) <<matr[i][j] <<' ';
    std::cout << "\n\n";
    for (i=0; i<x; i++)
    {
   for (j=0; j<y; j++)
   {
   if(i==j)
    s=s+matr[i][j];
    kol=kol+1;
    std::cout<<" \n"<<matr[i][j];
   }
    }
   sr=(float)s/kol;
    std::cout<<"\n"<<sr;
    system("pause");
    return 0;
}
  }
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.04.2014, 09:39     Найти среднее арифметическое положительных элементов главной и побочной диагоналей матрицы
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Керра
Модератор
 Аватар для Керра
1270 / 438 / 45
Регистрация: 24.08.2011
Сообщений: 2,123
22.04.2014, 09:39     Найти среднее арифметическое положительных элементов главной и побочной диагоналей матрицы #7
если все равно if(i==j), то почему бы не писать просто a[i][i]?.. зачем прокручивать n*n элементов, если можно только n?
нету скобок при этом if-е, и нет проверки на положительность
Yandex
Объявления
22.04.2014, 09:39     Найти среднее арифметическое положительных элементов главной и побочной диагоналей матрицы
Ответ Создать тему
Опции темы

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