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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Otar4ik
3 / 3 / 0
Регистрация: 20.10.2013
Сообщений: 94
#1

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

21.04.2014, 12:49. Просмотров 872. Ответов 6
Метки нет (Все метки)

Сразу скажу что не получается,не могу понять куда здесь впихивать условие проверки положительных чисел,и главное когда запускается студия сразу просит или пропустить или прервать,жёлтая стрелка указывает на 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++
Найти среднее арифметическое всех положительных элементов матрицы C++
C++ Найти среднее арифметическое элементов матрицы, расположенных на главной диагонали
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Керра
1276 / 444 / 45
Регистрация: 24.08.2011
Сообщений: 2,133
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;
}
Керра
1276 / 444 / 45
Регистрация: 24.08.2011
Сообщений: 2,133
21.04.2014, 13:53     Найти среднее арифметическое положительных элементов главной и побочной диагоналей матрицы #4
конечно накосячил. вопрос такой: вот тут x[i][n-i+1] у нас какая переменная присутствует в координатах? i или j?

и еще: m и n - это размеры массива. так зачем ты везде пишешь 5, если у тебя уже есть для этого константы? кстати, сделай их константами. размеры задаются именованными константами, чтобы если ты захочешь изменить размер, то меняешь в одном месте и готово. кстати, матрица квадратная, поэтому только n должно быть.
cooller
565 / 533 / 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++
Найти среднее арифметическое положительных (или больших единицы) элементов матрицы C++
C++ Среднее арифметическое положительных элементов м-цы, расположенных выше ее побочной диагонали

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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru