Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.01.2012, 20:03   #1
balalay12
Пользователь
 
Аватар для balalay12
 
Регистрация: 11.03.2010
Сообщений: 24
По умолчанию Массивы

Добрый вечер.

Не могу разобраться с задачей на массивы.

В двумерном массиве вставить столбец из нулевых элементов после первого же столбца в котором все элементы положительны. Если такого столбца нет то сообщить об этом.

Подскажите пожалуйста логики решения.
balalay12 вне форума Ответить с цитированием
Старый 26.01.2012, 20:15   #2
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от balalay12 Посмотреть сообщение
Добрый вечер.

Не могу разобраться с задачей на массивы.

В двумерном массиве вставить столбец из нулевых элементов после первого же столбца в котором все элементы положительны. Если такого столбца нет то сообщить об этом.

Подскажите пожалуйста логики решения.
1. В цикле перебираем все столбцы двух-мерного массива, пока не перелопатим весь массив
... 1.1 В цикле перебираем все элементы столбца, пока не переберём весь столбец, либо пока не наткнёмся на отрицательный элемент.
... 1.2 Столбец был полностью просмотрен?
... 1.3 Нет! Goto 1
... 1.4 Да! Вставить после данного столбца новый столбец. Goto 3

2. Все столбцы были просмотрены?
...2.1 Да! Вывести сообщение о том, что места для вставки столбца не обнаруженно.

3. Профит!
_Bers вне форума Ответить с цитированием
Старый 26.01.2012, 21:07   #3
balalay12
Пользователь
 
Аватар для balalay12
 
Регистрация: 11.03.2010
Сообщений: 24
По умолчанию

Подскажите еще пожалуйста как узнать что цикл просмотрел полностью столбец.
Пока что код написал вот такой:

Код:
clrscr();
randomize();
int M[5][5];
int s,i;

for(i=0; i<5; i++)
{
        for(s=0; s<5; s++)
        {
                M[i][s] = random(14);
                M[i][s] -=5;
                printf ("\t %i", M[i][s]);
        }
        printf ("\n");
}

for (i=0; i<5; i++)
{
        //l:i++;
        for (s=0; s<5;)
        {
                if(M[s][i] > 0)
                {
                        cout << M[s][i] << " ";
                        s++;

                }
                else if(M[s][i] < 0)
                {
                        break;
                        //goto l;
                }
        }
}

getche();
balalay12 вне форума Ответить с цитированием
Старый 26.01.2012, 21:35   #4
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

[QUOTE=balalay12;968162]Подскажите еще пожалуйста как узнать что цикл просмотрел полностью столбец.

Цикл крутится от i до max
Если после прерывания цикла i равно max стало быть, цикл прервался потому что пробежался по всем своим итерациям.
_Bers вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двумерные массивы(матрица) 2)Строковые массивы(строки): 3)Структуры nuriyat Помощь студентам 1 21.01.2012 16:16
Двумерные массивы(массивы указателей на массивы) krytishka99 Помощь студентам 1 29.12.2011 19:51
указатели на массивы и массивы указателей blacktener Общие вопросы C/C++ 16 13.06.2011 20:45
Динамические массивы и массивы варианты N@stya Помощь студентам 0 11.06.2010 21:09
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12