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

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

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

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

09.04.2014, 19:34. Просмотров 504. Ответов 6
Метки нет (Все метки)

Дан массив размером 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++
Есть задача. Использование функций-шаблонов: для работы с двумерными массивами арифметических типов данных разработать шаблоны ввода и...

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

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

Дан двумерный массив. Сформировать одномерный массив из элементов заданного массива, расположенных под побочной диагональю. - C++
Дан двумерный массив размером n x n. Сформировать: Одномерный массив из элементов заданного массива, расположенных под побочной...

Дан двумерный массив размерностью Н. сформировать одномерный массив из элементов заданного массива расположенных над главной диагональю. - C++
помогите решить=)Дан двумерный массив размерностью Н. сформировать одномерный массив из элементов заданного массива расположенных над ...

Найти максимальный элемент среди отрицательных элементов матрицы, расположенных над побочной диагональю - C++
Помогите пожалуйста составить программу на C++: Дана матрица A(4,4) Найти максимальный элемент среди отрицательных элементов матрицы...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
zss
Модератор
Эксперт С++
6358 / 5922 / 1920
Регистрация: 18.12.2011
Сообщений: 15,220
Завершенные тесты: 1
09.04.2014, 21:42 #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
Сообщений: 346
10.04.2014, 08:51  [ТС] #3
Он мне тупо 0 выдаёт, когда я вывожу.
А ещё у меня там ошибка. Не m, а n должно быть в цикле. Ну это так.

Добавлено через 10 часов 55 минут
Так что нужно сделать?..
zss
Модератор
Эксперт С++
6358 / 5922 / 1920
Регистрация: 18.12.2011
Сообщений: 15,220
Завершенные тесты: 1
10.04.2014, 09:17 #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
Сообщений: 346
10.04.2014, 16:27  [ТС] #5
А за что это отвечает?
C++
1
srand((unsigned)time( NULL))
Nikolai699
16 / 16 / 3
Регистрация: 15.03.2012
Сообщений: 106
11.04.2014, 14:57 #6
Цитата Сообщение от b0nny Посмотреть сообщение
А за что это отвечает?
Код C++
1
srand((unsigned)time( NULL))
чтобы массив заполнялся всегда разными значениями
b0nny
3 / 1 / 0
Регистрация: 11.11.2013
Сообщений: 346
16.04.2014, 12:26  [ТС] #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
Комментарий при проверке.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2014, 12:26
Привет! Вот еще темы с ответами:

Подсчитать произведение отрицательных элементов, расположенных под побочной диагональю матрицы - C++
Дана квадратная вещественная матрица Y nxn. Подсчитать произведение отрицательных элементов, расположенных под побочной диагональю и на ней...

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

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

Среднее арифметическое положительных элементов м-цы, расположенных выше ее побочной диагонали - C++
Вобщем, подскажите, как реализовать это в программном коде? Дописал до этого момента: #include &lt;iostream&gt; using namespace std; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
16.04.2014, 12:26
Ответ Создать тему
Опции темы

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