![]() |
|
Модераторы: bsa |
![]()
|
|
| volnorez |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 22.9.2007 Репутация: нет Всего: нет |
Здравствуйте. Очень нужна помощь в решении задачи на двумерные массивы.
Вот условие: Заменить элементы матрицы 0 , ели они больше среднего значения по строке. Заранее спасибо за помощь. |
|||
|
||||
| susanin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 587 Регистрация: 7.10.2006 Где: Санкт-Петербург Репутация: 2 Всего: 7 |
что значит больше среднего??? больше среднего арифметического строки? или больше элемента который посередине?
|
|||
|
||||
| Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 13 Всего: 41 |
вот так можно! по-моему, наглядно
попробуй, напиши!!! -------------------- |
|||
|
||||
| susanin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 587 Регистрация: 7.10.2006 Где: Санкт-Петербург Репутация: 2 Всего: 7 |
Dmi3ev, одного взгляда достаточно чтобы понять что она не будет работать..=) а return 0; в конце кто писать будет?и массив как то непонятно объявлен...
вобщем после небольшой корректировки получается полностью работоспособная версия на VS2005
Это сообщение отредактировал(а) susanin - 13.3.2008, 21:58 |
|||
|
||||
| volnorez |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 22.9.2007 Репутация: нет Всего: нет |
Да надо обнулить если элементы больше среднего арифметического значения по строке.
SUSANIN а можешь объяснить что ты там написал и можно ли вводить матрицу непосредственно с клавиатуры в самой проге а не статически в начале? |
|||
|
||||
| susanin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 587 Регистрация: 7.10.2006 Где: Санкт-Петербург Репутация: 2 Всего: 7 |
volnorez, конечно можно! нет ничего невозможного! а вот объяснять что я там ..вернее господин Dmi3ev написал могу только вобщем... хотите больше-читайте книги... вобщем происходит следующее... пробегаем двумерный массив по каждой строчке.. вычисляем для каждой строчки среднее арифметической... потом опять пробегаем эту строчку и сравниваем элементы со средним арифметическим..если элемент больше среднего арифметического, то мы обнуляем его... вот и все... так для всех строк...
|
|||
|
||||
| Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 13 Всего: 41 |
susanin, не обязательно писать return 0! попробуй, получится! у меня работает и у тебя заработает!
-------------------- |
|||
|
||||
| susanin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 587 Регистрация: 7.10.2006 Где: Санкт-Петербург Репутация: 2 Всего: 7 |
Dmi3ev, не знаю что у вас за компилятор, но int main () требует чтобы функция возвращала целочисленное значение!!! поэтому эта ошибка еще на этапе компиляции вылетает! по крайней на VS 2005!! так же VS 2005 в циклах for() не объявлен тип переменной i ... это тоже ошибка... по крайней мере по стандарту с++... ведь до цикла то переменная i не объявлялась....а те переменный которые объявляются внутри цикла for() дейтсвуют только внутри этого цикла..
Это сообщение отредактировал(а) susanin - 13.3.2008, 22:35 |
|||
|
||||
| volnorez |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 22.9.2007 Репутация: нет Всего: нет |
А зачем мы везде вот в этом "for (int i=0; i<=4; i++)" пишем <=4 что это за счетчик такой почему именно 4?
|
|||
|
||||
| susanin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 587 Регистрация: 7.10.2006 Где: Санкт-Петербург Репутация: 2 Всего: 7 |
volnorez , потому что массив наш [5][5] (пять на пять) но так как элементы начинаются с нулевого, то получается чтобы пройти по всем элементам надо с 0 до 4 ключительно...можно было в начале объявить размер массива например как const int size=5 а потом в циклах писать for(int i=0; i<size;i++)
|
|||
|
||||
| Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 13 Всего: 41 |
оператор return нужен, если функция (которая по замыслу ничего возвращать не будет) завершается не естественным порядком (до достижения "}")! а так компилятор спокойно понимает что и как! конечно желательно это писать, но совсем не обязательно! а массив можно и так инициализировать!!! твоя запись, конечно, тоже правильная (это бесспорно), но и в моей ничего плохого нет!!! можно даже в строчку объявлять двумерный массив (только это не очень наглядно)!
так что,susanin, не суди меня, сделай скидку на то, что я писал сразу здесь и даже не компилировал! -------------------- |
|||
|
||||
| volnorez |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 22.9.2007 Репутация: нет Всего: нет |
А если мне надо задать массив 10 на 10 и я задаю методм случайных чисел тогда что?
#include<iostream.h> #include <iomanip.h> #include <stdlib.h> #include <time.h> #include <conio.h> int main() { clrscr; srand(unsigned(time(NULL))); const size = 10; int A[size][size]={0}; for(int i=0;i<size;i++){ for(int j=0;j<size;j++){ A[i][j] = rand()%100; } } for(i=0;i<size;i++){ for(int j=0;j<size;j++){ cout<<setw(8)<<A[i][j]; |
|||
|
||||
| susanin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 587 Регистрация: 7.10.2006 Где: Санкт-Петербург Репутация: 2 Всего: 7 |
не совсем правда.... действительно, он может выполнять такую функцию, но если вы объявляете функцию как возвращающую целочисленное значение, то будьте добры и возвратить это значение посредством оператора return... не в обиду вам, Dmi3ev , но книги надо читать повнимательней.. |
|||
|
||||
| Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 13 Всего: 41 |
кстати на счет переменных в циклах, если я объявляю их каждый раз он выдает "multiple declaration" и я убираю объявления, пока не перестает ругаться)))
я компилировал в BORLAND TURBO C++, все пучком))) ладно, susanin, не буду спорить, твои замечания справедливы. суть проблемы не в этом ведь, в самой задаче разногласий нет, так что не будем рассуждать на тему записи, экзешник один х..))) (извините) и вас и у меня работает))) -------------------- |
|||
|
||||
| susanin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 587 Регистрация: 7.10.2006 Где: Санкт-Петербург Репутация: 2 Всего: 7 |
volnorez,
практически правильный код.... немного поправьте скобки и все будет ок! |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |