Все выпуски  

RFpro.ru: Программирование на C / C++


РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты в разделе

solowey
Статус: Студент
Рейтинг: 421
∙ повысить рейтинг »
zdwork
Статус: 1-й класс
Рейтинг: 111
∙ повысить рейтинг »
Хватов Сергей
Статус: Академик
Рейтинг: 39
∙ повысить рейтинг »

∙ С / С++

Номер выпуска:1954
Дата выхода:08.02.2019, 10:45
Администратор рассылки:Андрей Кузнецов aka Dr_Andrew (Старший модератор)
Подписчиков / экспертов:42 / 28
Вопросов / ответов:1 / 1

Консультация # 194576: Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: Как правильно реализовать задачу на матрице 9 на 9 ? smile Условие: Заполнить матрицу ЛП , от левого нижнего угла по диагонали : в лево вверх. Числа должны быть целыми . Есть ка...

Консультация # 194576:

Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
Как правильно реализовать задачу на матрице 9 на 9 ? smile
Условие:
Заполнить матрицу ЛП , от левого нижнего угла по диагонали : в лево вверх.
Числа должны быть целыми . Есть картинка.


Дата отправки: 03.02.2019, 10:41
Вопрос задал: Myltimix (Посетитель)
Всего ответов: 1
Страница онлайн-консультации »


Консультирует zdwork (1-й класс):

Здравствуйте, Myltimix!


#include <stdlib.h>
#include <iostream>
#define n 9
using namespace std;

int main ()
{
    int arr[n][n]; // объявили массив
    int i, j;
    i = n-1; //инициализируем индексы начальной ячейкой
    j = 0;
    for (int num = 1; num <= n*n; num++) // основной цикл, заполняющий массив
    {
        arr[i][j] = num; // заносим число в ячейку массива
        // сейчас мы передвинем индексы на следующую ячейку
        // нам понадобится пара буферных переменных для грубого хака (см. дальше)
        int i0, j0;

        i0 = i;
        j0 = j;

        if ( (i != 0) && (j != 0) ) // если мы не достигли границы ни по одному из индексов
        {
            i--;
            j--;
        }
        else if ((j == 0) && (i == 0)) // вот здесь - грубый хак на случай, когда мы приходим в клетку 0,0
        {
            i = n - 2;
            j = n - 1;
        }
        else if (j == 0) // проверяем, не дошли ли мы до границы по j
        {
            j = n - i0;
            i = n - 1;
        }
        else // if (i == 0) // проверяем, не дошли ли мы до границы по i
        {
            i = n - 2 - j0;
            j = n - 1;
        }
    }
    cout<<"  Result Array:"<< endl;
    for (i = 0; i < n; i++)
        {
            for (j = 0; j < n; j++)
            {
                if (arr[i][j]< 10)
                cout<<" "<< arr[i][j]<<"  ";
                   else  cout<< arr[i][j]<<"  ";
            }
            cout<< "  " <<endl;
        }
    system("pause");
    return 0;
}

Консультировал: zdwork (1-й класс)
Дата отправки: 03.02.2019, 20:22

5
нет комментария
-----
Дата оценки: 05.02.2019, 14:11

Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


В избранное