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

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

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

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

21.04.2014, 12:49. Просмотров 921. Ответов 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2014, 12:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти среднее арифметическое положительных элементов главной и побочной диагоналей матрицы (C++):

Среднее арифметическое положительных элементов главной и побочной диагоналей матрицы - C++
Среднее арифметическое для главной,вроде,считает. Теперь нужно найти для побочной. Вопрос состоит в следующем,можно ли, не создавая...

Среднее арифметическое главной и побочной диагоналей матрицы - C++
Здравствуйте, помогите пожалуйста разобраться с ошибкой :) В текстовом файле на первой строке расположены данные о размерности квадратной...

Найти сумму элементов матрицы, лежащих выше главной и побочной диагоналей - C++
Универсальный алгоритм поиска элементов матрицы расположенных верхней половине матрицы без диагональных элементов исходя из ее размера...

Вычислить среднее арифметическое положительных элементов матрицы, стоящих выше главной диагонали - C++
Дана квадратная матрица порядка N. Вычислить среднее арифметическое положительных элементов матрицы, стоящих выше главной диагонали. ...

Найти среднее геометрическое и среднее арифметическое элементов главной диагонали матрицы - C++
Написать функцию которая находит среднее геометрические и среднее арифметические элементы главной диагонали матрицы, заполнить и выполнить...

Найти среднее арифметическое элементов каждой диагонали матрицы, параллельной побочной - C++
Здравствуйте! Помогите написать 3 программмы на C++ на задачи с двумерными массивами 2. Дана квадратная матрица A порядка M. Найти...

6
MayaNash
1285 / 453 / 47
Регистрация: 24.08.2011
Сообщений: 2,214
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 не присвоено значение
0
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;
}
0
MayaNash
1285 / 453 / 47
Регистрация: 24.08.2011
Сообщений: 2,214
21.04.2014, 13:53 #4
конечно накосячил. вопрос такой: вот тут x[i][n-i+1] у нас какая переменная присутствует в координатах? i или j?

и еще: m и n - это размеры массива. так зачем ты везде пишешь 5, если у тебя уже есть для этого константы? кстати, сделай их константами. размеры задаются именованными константами, чтобы если ты захочешь изменить размер, то меняешь в одном месте и готово. кстати, матрица квадратная, поэтому только n должно быть.
0
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 не включительно
0
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;
}
  }
}
0
MayaNash
1285 / 453 / 47
Регистрация: 24.08.2011
Сообщений: 2,214
22.04.2014, 09:39 #7
если все равно if(i==j), то почему бы не писать просто a[i][i]?.. зачем прокручивать n*n элементов, если можно только n?
нету скобок при этом if-е, и нет проверки на положительность
0
22.04.2014, 09:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.04.2014, 09:39
Привет! Вот еще темы с ответами:

Массив: Найти среднее арифметическое элементов матрицы и сумму элементов тех строк матрицы, в которых отрицателен элемент главной диагонали. - C++
Ребят не понимаю я с++ Дали создать программу Помогите пожалуйста Найти среднее арифметическое элементов матрицы и сумму элементов...

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

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

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


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

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

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