Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 33
1

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

19.02.2011, 16:27. Показов 2173. Ответов 18
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дана матрица состоящая из N,M вещественных элементов.
1.Найти максимальный элемент
2.Вычислить средееарифметическое отрицательных элементов массива
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.02.2011, 16:27
Ответы с готовыми решениями:

Найти среднее арифметическое отрицательных элементов матрицы
найти среднее арифметическое отрицательных элементов матрицы лежащей ниже главной диагонали и...

Найти максимальный элемент и среднее арифметическое отрицательных элементов
Задать одномерный массив вещественных чисел X(n), где n<=30.Найти максимальный элемент и среднее...

Заменить максимальный элемент одномерного массива на среднее арифметическое отрицательных элементов
заменить максимальный элемент одномерного массива на среднее арифметическое отрицательных элементов

Найти максимальный элемент, среднее арифметическое элементов массива
Доброго Дня! Прошу небольшой помощи: 1. Найти максимальный элемент массива и выдать на экран его...

18
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
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 );
1
0 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 33
19.02.2011, 17:14  [ТС] 3
а типа как это сделать в одной программе.и чтоб работало
0
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
19.02.2011, 17:16 4
boyazhovkostya, Запхните код(см. выше) в main().
1
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 );
и можешь пожалуйста пояснить эти строчки
0
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
19.02.2011, 17:22 6
Омг, кажеться вам сюда
0
42 / 42 / 13
Регистрация: 04.01.2011
Сообщений: 125
19.02.2011, 17:25 7
Цитата Сообщение от asics Посмотреть сообщение
size_t cnt = 0;
Мне тож вот эта строчка инересна.
Что она делает?

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

"Тип size_t обычно применяется для счетчиков циклов, индексации массивов, хранения размеров, адресной арифметики."
Но все-таки хочу узнать чем он лучше int?
1
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?
0
42 / 42 / 13
Регистрация: 04.01.2011
Сообщений: 125
19.02.2011, 17:44 9
Цитата Сообщение от boyazhovkostya Посмотреть сообщение
а за место этого(size_t cnt) можно int?
Можно, но size_t видимо чем-то лучше.

Цитата Сообщение от boyazhovkostya Посмотреть сообщение
и че здесь в первой строчке =0.0?
потому что double-тип с плавающей точкой.
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
19.02.2011, 17:51 10
Вообще size_t - синоним типа unsigned int. Счётчик по смыслу не может принимать отрицательные значения, а size_t приятнее и быстрее писать, чем unsigned.
2
42 / 42 / 13
Регистрация: 04.01.2011
Сообщений: 125
19.02.2011, 17:52 11
Цитата Сообщение от silent_1991 Посмотреть сообщение
Вообще size_t - синоним типа unsigned int. Счётчик по смыслу не может принимать отрицательные значения, а size_t приятнее и быстрее писать, чем unsigned.
а для size_t библиотек дополнительных не нужно подключать?
1
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
19.02.2011, 18:08 12
Sokolov, нет.
2
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: необъявленный идентификатор
0
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
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;
}
0
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: необъявленный идентификатор
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
01.03.2012, 00:21 16
Цитата Сообщение от silent_1991 Посмотреть сообщение
Вообще size_t - синоним типа unsigned int.
Мне казалось, что size_t обязательно должен быть 4 байтным, чего не скажешь о int. Исправь меня, если я не прав.
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
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-разрядная машинка)
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
01.03.2012, 10:14 18
Цитата Сообщение от Nameless One Посмотреть сообщение
у меня — 8 байт (64-разрядная машинка)
Я опять не правильно выразился.
Я имел ввиду, size_t обязан быть не менее 4 байт на любой машине. Это так?
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
01.03.2012, 14:53 19
Цитата Сообщение от go Посмотреть сообщение
Я имел ввиду, size_t обязан быть не менее 4 байт на любой машине. Это так?
прямого указания я не нашел, но судя по тому, что SIZE_MAX должен быть не менее 65535, а size_t представляет беззнаковый целый тип, то минимальный возможный размер size_t по стандарту — 2 байта
1
01.03.2012, 14:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.03.2012, 14:53
Помогаю со студенческими работами здесь

Найти среднее арифметическое отрицательных элементов матрицы
Дана матрица 5х6. Найти среднее арифметическое отрицательных элементов матрицы. Найти MIN из сумм,...

Найти среднее арифметическое отрицательных элементов матрицы
Дана матрица 5х6. Найти среднее арифметическое отрицательных элементов матрицы. Найти MIN из сумм,...

Найти среднее арифметическое отрицательных элементов матрицы
Помогите написать программу и блок схему. Найти среднее арифметическое отрицательных элементов...

Найти среднее арифметическое отрицательных элементов матрицы А(4.4)
Найти среднее арифметическое отрицательных элементов матрицы А(4.4) Помогите пожалуйста!


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru