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

Дан массив размером n×n. Подсчитать среднее арифметическое, расположенных над побочной диагональю - C++

Восстановить пароль Регистрация
 
b0nny
3 / 1 / 0
Регистрация: 11.11.2013
Сообщений: 338
09.04.2014, 19:34     Дан массив размером n×n. Подсчитать среднее арифметическое, расположенных над побочной диагональю #1
Дан массив размером n×n. Подсчитать среднее арифметическое ненулевых элементов, расположенных над побочной диагональю.

Помогите организовать цикл, который поможет подсчитать...

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<stdio.h>
#include<conio.h>
#include<stdlib.h>
 
using namespace std;
 
main()
{
    int n,i,j,k,s,sr;
    printf("n="); scanf("%d",&n);
    int a[n][n];
    printf("Матрица:");
    for (int i=0; i<n; i++)
    for (int j=0; j<n; j++)
     a[i][j]=rand()%21-10;
  printf("\n");
  for (int i=0; i<n; i++)
  {
        for (int j=0; j<n; j++)
         printf("%3d ", a[i][j]);
         printf("\n");
  }
 
<HELP>
 
system("pause");
return 0;
}
Знаю, что...
i+j< n+1 – элементы расположены над побочной диагональю;

Добавлено через 4 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
k=0;
s=0;
for (int i=0; i<m; i++)
{
    for (int j=i; j<n-1; j++)
    if(a[i][j]!=0)
    {
        s+=a[i][j];
        ++k;
    }
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2014, 19:34     Дан массив размером n×n. Подсчитать среднее арифметическое, расположенных над побочной диагональю
Посмотрите здесь:

C++ Среднее арифметическое положительных элементов м-цы, расположенных выше ее побочной диагонали
C++ подсчитать количество положительных элементов квадратной целочисленной таблицы В порядке N, расположенных над главной диагональю
[C++] Подсчитать среднее арифметическое ненулевых эементов, расположенных над побочной диагональю. C++
Найти наибольший элемент среди элементов матрицы, расположенных над главной диагональю и под боковой диагональю C++
Среди элементов ниже побочной диагонали, найти количество меньших, чем любой элемент над побочной диагональю C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5953 / 5558 / 1787
Регистрация: 18.12.2011
Сообщений: 14,204
Завершенные тесты: 1
09.04.2014, 21:42     Дан массив размером n×n. Подсчитать среднее арифметическое, расположенных над побочной диагональю #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
k=0;
s=0;
for (int i=1; i<m; i++) // в первой строке элементов нет
{
    for (int j=0; j<i; j++) // саму диагональ не включаем
    if(a[i][j]!=0)
    {
        s+=a[i][j];
        ++k;
    }
}
if(k>0)
     s/=k; // среднее арифметическое
b0nny
3 / 1 / 0
Регистрация: 11.11.2013
Сообщений: 338
10.04.2014, 08:51  [ТС]     Дан массив размером n×n. Подсчитать среднее арифметическое, расположенных над побочной диагональю #3
Он мне тупо 0 выдаёт, когда я вывожу.
А ещё у меня там ошибка. Не m, а n должно быть в цикле. Ну это так.

Добавлено через 10 часов 55 минут
Так что нужно сделать?..
zss
Модератор
Эксперт С++
 Аватар для zss
5953 / 5558 / 1787
Регистрация: 18.12.2011
Сообщений: 14,204
Завершенные тесты: 1
10.04.2014, 09:17     Дан массив размером n×n. Подсчитать среднее арифметическое, расположенных над побочной диагональю #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Делать ничего не надо.
Среднее арифметическое равномерного распределения - середина интервала.
Поскольку у Вас распределение в интервале [-10,10], то и ср. арифметическое должно быть вблизи нуля.
Вот рабочий код (s имеет тип double Для большей точности).
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
#include<iostream>
#include<cstdlib>
#include<ctime>
 
using namespace std;
const int n=10;
int main()
{
    int k;
    double s;
    int a[n][n];
    srand( (unsigned)time( NULL ) );
    printf("Матрица:");
    for (int i=0; i<n; i++)
    for (int j=0; j<n; j++)
    a[i][j]=rand()%21-10;
    printf("\n");
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
            printf("%3d ", a[i][j]);
         printf("\n");
    }
    k=0;
    s=0;
    for (int i=1; i<n; i++) // в первой строке элементов нет
    {
       for (int j=0; j<i; j++) // саму диагональ не включаем
       if(a[i][j]!=0)
       {
           s+=a[i][j];
           ++k;
       }
    }
    if(k>0)
        s/=k; // среднее арифметическое
    cout<<"AVERAGE VALUE="<<s<<endl;
    system("pause");
    return 0;
}
b0nny
3 / 1 / 0
Регистрация: 11.11.2013
Сообщений: 338
10.04.2014, 16:27  [ТС]     Дан массив размером n×n. Подсчитать среднее арифметическое, расположенных над побочной диагональю #5
А за что это отвечает?
C++
1
srand((unsigned)time( NULL))
Nikolai699
16 / 16 / 3
Регистрация: 15.03.2012
Сообщений: 105
11.04.2014, 14:57     Дан массив размером n×n. Подсчитать среднее арифметическое, расположенных над побочной диагональю #6
Цитата Сообщение от b0nny Посмотреть сообщение
А за что это отвечает?
Код C++
1
srand((unsigned)time( NULL))
чтобы массив заполнялся всегда разными значениями
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2014, 12:26     Дан массив размером n×n. Подсчитать среднее арифметическое, расположенных над побочной диагональю
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
b0nny
3 / 1 / 0
Регистрация: 11.11.2013
Сообщений: 338
16.04.2014, 12:26  [ТС]     Дан массив размером n×n. Подсчитать среднее арифметическое, расположенных над побочной диагональю #7
Во 2-м задании циклы для отбора элементов над побочной диагональю неверны.

for (int i=1; i<n; i++)
{
for (int j=0; j<i; j++)
индексы таких элементов

0,0 0,1 0,2 ... 0,n-2

1,0 1,1 1,2 ... 1,n-3

...
n-2,0
Комментарий при проверке.
Yandex
Объявления
16.04.2014, 12:26     Дан массив размером n×n. Подсчитать среднее арифметическое, расположенных над побочной диагональю
Ответ Создать тему
Опции темы

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