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

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

Восстановить пароль Регистрация
 
victoire1992
0 / 0 / 0
Регистрация: 20.03.2011
Сообщений: 9
07.04.2011, 22:36     Определить среднее арифметическое всех отрицательных элементов матрицы #1
Для заданной матрицы A(n, m) определить среднее арифметическое всех отрицательных элементов.В случае отстутствия вывести сообщение про их отсутствие.
Очень нужно.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.04.2011, 22:36     Определить среднее арифметическое всех отрицательных элементов матрицы
Посмотрите здесь:

C++ Найти максимальный элемент и среднее арифметическое отрицательных элементов матрицы
C++ Определить среднее арифметическое всех элементов массива.
Массив: Найти среднее арифметическое из всех положительных элементов этой матрицы C++
C++ Найти среднее арифметическое Sro всех отрицательных элементов матрицы
C++ найдите среднее арифметическое всех отрицательных элементов в четных элементах двух одномерных массивах
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5816 / 1214 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
07.04.2011, 22:48     Определить среднее арифметическое всех отрицательных элементов матрицы #2
C++
1
2
3
4
5
6
7
8
for(int i=0; i<n; i++)
for(int j=0; j<m; j++)
if(arr[i][j]<0)
{
sum+=arr[i][j];
cnt++;
}
cout<<abs(sum/cnt)<<endl;
victoire1992
0 / 0 / 0
Регистрация: 20.03.2011
Сообщений: 9
07.04.2011, 22:57  [ТС]     Определить среднее арифметическое всех отрицательных элементов матрицы #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <cmath>
#include <iomanip>
#include <ctime>
#include <conio.h>
#include "fun_console.h"
using namespace std;
 
void main()
{
    SetColor(2,0);
    srand((unsigned)time( NULL ));
    int i,j,s=0;
    int a[20];
 
for(int i=0; i<n; i++)
for(int j=0; j<m; j++)
if(arr[i][j]<0)
{
sum+=arr[i][j];
cnt++;
}
cout<<abs(sum/cnt)<<endl;

Что я делаю не так?

Добавлено через 1 минуту
Ошибка,реализовать нужно через класс!
Хитрый_КОТ
 Аватар для Хитрый_КОТ
3 / 3 / 1
Регистрация: 21.11.2010
Сообщений: 30
07.04.2011, 23:51     Определить среднее арифметическое всех отрицательных элементов матрицы #4
В вашем коде не зарегестрированы переменные n и m
нужно в начало добавить размерность массива в данном случае 2х2
const int n=2;
const int m=2;
инициализировать массив
int arr[m][n];
потом писать ваш цикл

int a[20];
не верно инициализируется одномерный массив из 20ти элементов

Добавлено через 4 минуты
int i,j,s=0;
писать не нужно т.к вы уже задействовали i и j в цикле, а s у вас не используется
так же вы не задействовали переменную sum и cnt

Добавлено через 3 минуты
Так же есть подозрение что вы не до конца реализовали функцию
srand((unsigned)time( NULL ));
Добавлено через 17 минут
Вот рабочий код, размерность можно задать любую, ввод элементов массива осуществляется вручную


Добавлено через 4 минуты
правельнее будет программа
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
// qwerty_1.cpp: определяет точку входа для консольного приложения.
 
#include "stdafx.h"
#include <windows.h>
#include <iostream>
 
 
using namespace std;
 
  int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian");
 
    //размерность массива
    const int N = 2, M = 2;
    //создание массива
    int r[N][M];
 
               cout << "Ручной ввод элементов масива" << endl;
           
    
 for (int i = 0; i < N; i++)
   {
       for (int j = 0; j < M; j++)
       {
           cout << "Введите элемент [" << i << "]["  << j << "] =";
          cin >> r[i][j];
       }
           //перейдем на новую строчку
           cout << endl;
   }
 
   //выведем массив на экран 
 cout << "Массив " << endl;
      for (int i = 0; i < N; i++)
   {
       for (int j = 0; j < M; j++)
       {
           cout << r[i][j] << " ";
 
       }
       cout << endl;
      }
 
            float col=0.0;
            float s=0.0;
            float d;
            for (int i = 0; i < N; i++)
            
               for (int j = 0; j < M; j++)
               {
           if (r[i][j] < 0)
           {
               s +=r[i][j];
               col++;
           } 
               }
            if (col == 0.0)
            { cout << "отрицательных элементов нет!!!" << endl;
            return 0;
            }
                
                d = s/col;
           {
               cout << "среднее отрицательное = " << d<< endl;
           }
            
 
           //перейдем на новую строчку
           cout << endl;
   
     cout << "Работа с масивом завершена" << endl;      
}
Yandex
Объявления
07.04.2011, 23:51     Определить среднее арифметическое всех отрицательных элементов матрицы
Ответ Создать тему
Опции темы

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