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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
boyazhovkostya
0 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 33
19.02.2011, 16:27     Найти максимальный элемент и среднее арифметическое отрицательных элементов матрицы #1
Дана матрица состоящая из N,M вещественных элементов.
1.Найти максимальный элемент
2.Вычислить средееарифметическое отрицательных элементов массива
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2011, 16:27     Найти максимальный элемент и среднее арифметическое отрицательных элементов матрицы
Посмотрите здесь:

Если максимальный элемент находится левее минимального, то найти среднее арифметическое элементов, находящихся между максимальным и минимальным. C++
C++ Найти максимальный элемент одномерного массива и среднее арифметическое его положительных элементов
C++ Матрицы: найти количество, сумму и среднее арифметическое отрицательных элементов в каждой строке
И снова массивы (найти максимальный элемент, определить среднее арифметическое) C++
C++ Найти среднее арифметическое Sro всех отрицательных элементов матрицы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
19.02.2011, 16:40     Найти максимальный элемент и среднее арифметическое отрицательных элементов матрицы #2
Цитата Сообщение от boyazhovkostya Посмотреть сообщение
1.Найти максимальный элемент
C++
1
2
3
4
5
max = matr[0][0];
for(int i = 0; i < N; ++i)
  for(int j = 0; j < M; ++j)
    if(matr[i][j] > max)
      max = matr[i][j];
Цитата Сообщение от boyazhovkostya Посмотреть сообщение
2.Вычислить средееарифметическое отрицательных элементов массива
C++
1
2
3
4
5
6
7
8
9
double sum = 0.0;
size_t cnt = 0;
for(int i = 0; i < N; ++i)
  for(int j = 0; j < M; ++j)
    if(matr[i][j] < 0){
      ++cnt;
      sum += matr[i][j];
    }
std::cout << ( sum / cnt );
boyazhovkostya
0 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 33
19.02.2011, 17:14  [ТС]     Найти максимальный элемент и среднее арифметическое отрицательных элементов матрицы #3
а типа как это сделать в одной программе.и чтоб работало
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
19.02.2011, 17:16     Найти максимальный элемент и среднее арифметическое отрицательных элементов матрицы #4
boyazhovkostya, Запхните код(см. выше) в main().
boyazhovkostya
0 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 33
19.02.2011, 17:17  [ТС]     Найти максимальный элемент и среднее арифметическое отрицательных элементов матрицы #5
C++
1
2
3
double sum = 0.0;
size_t cnt = 0;
std::cout << ( sum / cnt );
и можешь пожалуйста пояснить эти строчки
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
19.02.2011, 17:22     Найти максимальный элемент и среднее арифметическое отрицательных элементов матрицы #6
Омг, кажеться вам сюда
Sokolov
 Аватар для Sokolov
42 / 42 / 3
Регистрация: 04.01.2011
Сообщений: 125
19.02.2011, 17:25     Найти максимальный элемент и среднее арифметическое отрицательных элементов матрицы #7
Цитата Сообщение от asics Посмотреть сообщение
size_t cnt = 0;
Мне тож вот эта строчка инересна.
Что она делает?

Добавлено через 1 минуту
Цитата Сообщение от Sokolov Посмотреть сообщение
Мне тож вот эта строчка инересна.
Что она делает?
Хотя, уже нашел =)

"Тип size_t обычно применяется для счетчиков циклов, индексации массивов, хранения размеров, адресной арифметики."
Но все-таки хочу узнать чем он лучше int?
boyazhovkostya
0 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 33
19.02.2011, 17:35  [ТС]     Найти максимальный элемент и среднее арифметическое отрицательных элементов матрицы #8
C++
1
2
3
double sum = 0.0;
size_t cnt = 0;
std::cout << ( sum / cnt );
а за место этого(size_t cnt) можно int?
и че здесь в первой строчке =0.0?
а тут size_t cnt=0?
Sokolov
 Аватар для Sokolov
42 / 42 / 3
Регистрация: 04.01.2011
Сообщений: 125
19.02.2011, 17:44     Найти максимальный элемент и среднее арифметическое отрицательных элементов матрицы #9
Цитата Сообщение от boyazhovkostya Посмотреть сообщение
а за место этого(size_t cnt) можно int?
Можно, но size_t видимо чем-то лучше.

Цитата Сообщение от boyazhovkostya Посмотреть сообщение
и че здесь в первой строчке =0.0?
потому что double-тип с плавающей точкой.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
19.02.2011, 17:51     Найти максимальный элемент и среднее арифметическое отрицательных элементов матрицы #10
Вообще size_t - синоним типа unsigned int. Счётчик по смыслу не может принимать отрицательные значения, а size_t приятнее и быстрее писать, чем unsigned.
Sokolov
 Аватар для Sokolov
42 / 42 / 3
Регистрация: 04.01.2011
Сообщений: 125
19.02.2011, 17:52     Найти максимальный элемент и среднее арифметическое отрицательных элементов матрицы #11
Цитата Сообщение от silent_1991 Посмотреть сообщение
Вообще size_t - синоним типа unsigned int. Счётчик по смыслу не может принимать отрицательные значения, а size_t приятнее и быстрее писать, чем unsigned.
а для size_t библиотек дополнительных не нужно подключать?
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
19.02.2011, 18:08     Найти максимальный элемент и среднее арифметическое отрицательных элементов матрицы #12
Sokolov, нет.
boyazhovkostya
0 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 33
20.02.2011, 15:10  [ТС]     Найти максимальный элемент и среднее арифметическое отрицательных элементов матрицы #13
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "stdafx.h"
#include <iostream>
#include "math.h"
using namespace std;
void main()
{
max = matr[0][0];
for(int i = 0; i < N; ++i)
  for(int j = 0; j < M; ++j)
    if(matr[i][j] > max)
      max = matr[i][j];
 
double sum = 0.0;
size_t cnt = 0;
for(int i = 0; i < N; ++i)
  for(int j = 0; j < M; ++j)
    if(matr[i][j] < 0){
      ++cnt;
      sum += matr[i][j];
    }
std::cout << ( sum / cnt );
}
и шо она не работает?
вот какие ошибки выдает
cpp(7): error C2065: matr: необъявленный идентификатор
cpp(8): error C2065: N: необъявленный идентификатор
cpp(9): error C2065: M: необъявленный идентификатор
cpp(10): error C2065: matr: необъявленный идентификатор
cpp(11): error C2065: matr: необъявленный идентификатор
cpp(15): error C2065: N: необъявленный идентификатор
cpp(16): error C2065: M: необъявленный идентификатор
cpp(17): error C2065: matr: необъявленный идентификатор
cpp(19): error C2065: matr: необъявленный идентификатор
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
20.02.2011, 15:17     Найти максимальный элемент и среднее арифметическое отрицательных элементов матрицы #14
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
#include <iostream>
#include <cmath>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
srand(time(0));
const int N = 3, M = 4;
int matr[N][M];
for(int i = 0; i < N; ++i)
for(int j = 0; j < M; ++j)
matr[i][j] = rand() % 20 - 50;
double max = matr[0][0];
for(int i = 0; i < N; ++i){
for(int j = 0; j < M; ++j)
if(matr[i][j] > max)
max = matr[i][j];
}
double sum = 0.0;
size_t cnt = 0;
for(int i = 0; i < N; ++i){
for(int j = 0; j < M; ++j)
if(matr[i][j] < 0){
++cnt;
sum += matr[i][j];
}
}
cout <<  max << ' ' << ( sum / cnt );
return 0;
}
boyazhovkostya
0 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 33
02.03.2011, 18:12  [ТС]     Найти максимальный элемент и среднее арифметическое отрицательных элементов матрицы #15
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
#include <iostream>
#include "stdafx.h"
#include"math.h"
using namespace std;
int main()
{
srand(time(0));
const int N = 3, M = 4;
int matr[N][M];
for(int i = 0; i < N; ++i)
for(int j = 0; j < M; ++j)
matr[i][j] = rand() % 20 - 50;
double max = matr[0][0];
for(int i = 0; i < N; ++i){
for(int j = 0; j < M; ++j)
if(matr[i][j] > max)
max = matr[i][j];
}
double sum = 0.0;
size_t cnt = 0;
for(int i = 0; i < N; ++i){
for(int j = 0; j < M; ++j)
if(matr[i][j] < 0){
++cnt;
sum += matr[i][j];
}
}
cout <<  max << ' ' << ( sum / cnt );
return 0;
}
 Комментарий модератора 
Используйте теги форматирования кода

cpp(7): error C3861: srand: идентификатор не найден
cpp(7): error C3861: time: идентификатор не найден
cpp(12): error C3861: rand: идентификатор не найден
cpp(28): error C2065: cout: необъявленный идентификатор
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
01.03.2012, 00:21     Найти максимальный элемент и среднее арифметическое отрицательных элементов матрицы #16
Цитата Сообщение от silent_1991 Посмотреть сообщение
Вообще size_t - синоним типа unsigned int.
Мне казалось, что size_t обязательно должен быть 4 байтным, чего не скажешь о int. Исправь меня, если я не прав.
Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
01.03.2012, 06:51     Найти максимальный элемент и среднее арифметическое отрицательных элементов матрицы #17
man stddef.h
Код
<stddef.h>(0P)                                                                           POSIX Programmer's Manual                                                                           <stddef.h>(0P)



NAME
       stddef.h - standard type definitions

SYNOPSIS
       #include <stddef.h>

DESCRIPTION
       The <stddef.h> header shall define the following macros:

       NULL   Null pointer constant.

       offsetof(type, member-designator)

              Integer constant expression of type size_t, the value of which is the offset in bytes to the structure member (member-designator), from the beginning of its structure (type).


       The <stddef.h> header shall define the following types:

       ptrdiff_t
              Signed integer type of the result of subtracting two pointers.

       wchar_t
              Integer type whose range of values can represent distinct wide-character codes for all members of the largest character set specified among the locales supported by the compilation environ‐
              ment: the null character has the code value 0 and each member of the portable character set has a code value equal to its value when used as the lone character in an integer character  con‐
              stant.

       size_t Unsigned integer type of the result of the sizeof operator.


       The implementation shall support one or more programming environments in which the widths of ptrdiff_t, size_t, and wchar_t are no greater than the width of type long.  The names of these program‐
       ming environments can be obtained using the confstr() function or the getconf utility.

       The following sections are informative.

APPLICATION USAGE
       None.

RATIONALE
       None.

FUTURE DIRECTIONS
       None.

SEE ALSO
       <wchar.h>, <sys/types.h>, the System Interfaces volume of IEEE Std 1003.1-2001, confstr(), the Shell and Utilities volume of IEEE Std 1003.1-2001, getconf

COPYRIGHT
       Portions of this text are reprinted and reproduced in electronic form from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology -- Portable Operating System  Interface  (POSIX),  The
       Open  Group Base Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of Electrical and Electronics Engineers, Inc and The Open Group. In the event of any discrepancy between this ver‐
       sion and the original IEEE and The Open Group Standard, the original IEEE and The Open Group Standard is the referee document. The original Standard can  be  obtained  online  at  http://www.open‐
       group.org/unix/online.html .



IEEE/The Open Group                                                                                 2003                                                                                     <stddef.h>(0P)

Т.е. говорится, что size_t должен представлять беззнаковый целочисленный тип, не больший чем long, а в стандарте (7.19) сказано, что
The types used for size_t and ptrdiff_t should not have an integer conversion rank
greater than that of signed long int unless the implementation supports objects
large enough to make this necessary.
Ожидать, что на самом деле size_t = unsigned int — это ошибка. Представление size_t зависит от платформы. Максимальное значение size_t, ЕМНИП, определено в stdint.h

Цитата Сообщение от go Посмотреть сообщение
Мне казалось, что size_t обязательно должен быть 4 байтным, чего не скажешь о int. Исправь меня, если я не прав.
у меня — 8 байт (64-разрядная машинка)
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
01.03.2012, 10:14     Найти максимальный элемент и среднее арифметическое отрицательных элементов матрицы #18
Цитата Сообщение от Nameless One Посмотреть сообщение
у меня — 8 байт (64-разрядная машинка)
Я опять не правильно выразился.
Я имел ввиду, size_t обязан быть не менее 4 байт на любой машине. Это так?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.03.2012, 14:53     Найти максимальный элемент и среднее арифметическое отрицательных элементов матрицы
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
01.03.2012, 14:53     Найти максимальный элемент и среднее арифметическое отрицательных элементов матрицы #19
Цитата Сообщение от go Посмотреть сообщение
Я имел ввиду, size_t обязан быть не менее 4 байт на любой машине. Это так?
прямого указания я не нашел, но судя по тому, что SIZE_MAX должен быть не менее 65535, а size_t представляет беззнаковый целый тип, то минимальный возможный размер size_t по стандарту — 2 байта
Yandex
Объявления
01.03.2012, 14:53     Найти максимальный элемент и среднее арифметическое отрицательных элементов матрицы
Ответ Создать тему
Опции темы

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