|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.10.2009, 15:43 | #1 |
Пользователь
Регистрация: 19.01.2009
Сообщений: 17
|
Масив в С++
Есть квадратный масив, размерностью н (н вводится с клавиатуры). Нужно заполнить нижнюю четверть (между основной и второстепенной диагоналями, включая диагонали) натуральными числами по порядку, а все остальное нулями. Вопрос: подскажите саму зависимость, на которой можно построить циклы на заполнение натуральными числами. Или какойто другой способ....
|
13.10.2009, 15:59 | #2 |
The First Person!
Форумчанин
Регистрация: 07.08.2007
Сообщений: 228
|
ну, есть вариант заполнять треугольником снизу по строчкам. вот допустим сначала заполняем начиная со второго элемента, заканчивая предпоследним..будет как то так выглидить..
n=5 1 шаг 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 шаг 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 0 с каждым шагом отступ от обоих сторон увеличивать на 1.
Программа обычно делает то что вы ей сказали сделать, а не то что бы вы хотели, чтобы она сделала.
|
13.10.2009, 16:07 | #3 |
Пользователь
Регистрация: 19.01.2009
Сообщений: 17
|
Нееее, вся фишка в том, что масив надо заполнить примерно таки образом:
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 2 3 4 0 5 6 7 8 9 Сейчас я могу сделать примерно так: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 2 3 4 0 0 0 5 0 7 0 9 0 10 0 0 13 0 0 16 Тоисть заполнить две диагонали и столбик под 1. Может ето и не самый рациональный вариант, но пока я смог только до такого додуматся =) |
13.10.2009, 19:14 | #4 |
Дружите с Linq ;)
Форумчанин
Регистрация: 15.10.2008
Сообщений: 823
|
задача решается и правильно заполняется,если n нечетно..этого нет в условии?..
Тогда задача решается довольно несложно.Делим на 2 n,вернув целую часть приравниваем к... ну и потом делаем что-то вроде этого: Код:
Ах,да,при создании массива обнули его,тогда нулями не надо заполнять будет.Массив создавать примерно так...если память не подводит: Код:
Не давай организму поблажки, каждый день тренируй его в шашки..
Последний раз редактировалось Скарам; 13.10.2009 в 20:50. Причина: Индексы поправил |
14.10.2009, 02:22 | #5 |
Пользователь
Регистрация: 19.01.2009
Сообщений: 17
|
Завтра выложу свой не до конца написаный код, может по нему легче будет разобратся.....Но масив можно считать сразу забитым нулями, а н я вычисляю по формуле н=2*а+1 (собственно а вводится с клавиатуры).
|
14.10.2009, 08:47 | #6 | |
Дружите с Linq ;)
Форумчанин
Регистрация: 15.10.2008
Сообщений: 823
|
Цитата:
Код:
Не давай организму поблажки, каждый день тренируй его в шашки..
|
|
14.10.2009, 12:03 | #7 |
Пользователь
Регистрация: 19.01.2009
Сообщений: 17
|
Динамические масивы нельзя использовать =(
|
14.10.2009, 13:03 | #8 |
Дружите с Linq ;)
Форумчанин
Регистрация: 15.10.2008
Сообщений: 823
|
ну думаю,что объявление массива Вы сами в состоянии переделать,алгоритмы от этого не зависят.Сделайте массив побольше и всё,заполнение и вывод будут частичными,т.е. всё завязано на n ,поэтом объявление массива может быть и таким int mas[20][20];,удалите объявление динамического массива и всё..
Не давай организму поблажки, каждый день тренируй его в шашки..
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
масив в WHERE | memka | PHP | 4 | 03.04.2009 07:36 |
масив | HENRY23 | Общие вопросы Delphi | 0 | 17.03.2009 22:30 |
масив на 1000 ел. | ГРИГОРИЙ-кореш | Помощь студентам | 1 | 05.03.2009 19:15 |
Масив | rizii | Общие вопросы C/C++ | 2 | 09.01.2009 13:30 |
маcсив | nikleb | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 19.04.2007 23:23 |