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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.02.2013, 07:55   #1
Matfej
 
Регистрация: 31.12.2012
Сообщений: 9
По умолчанию Матрица уголками.С++

Добрый день!
Кто объяснит написание программы вывода матрицы уголками на экран?
Нужно вывести все элементы первой строки и последнего столбца.Затем элементы второй строки и предпоследнего столбца и т.д.
Заранее премного благодарен!!!
Matfej вне форума Ответить с цитированием
Старый 08.02.2013, 09:26   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Примерно так видимо...
Код:
for(int i=0;i<n;i++){
 for(int j=0;j<(n-i);j++)  printf(...,a[i,j]);
 for(int j=i;j<n;j++)  printf(...,a[j,n-i]);
}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.02.2013, 21:47   #3
Matfej
 
Регистрация: 31.12.2012
Сообщений: 9
По умолчанию

А если без функции printf?
Что-то голова не соообразит как!
Matfej вне форума Ответить с цитированием
Старый 08.02.2013, 22:59   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,341
По умолчанию

Код:
#include <iostream>
using namespace std;
...
cout << a[i,j] << ' ';
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 11.02.2013, 23:29   #5
Matfej
 
Регистрация: 31.12.2012
Сообщений: 9
По умолчанию

Немного неправильно вывод у меня идет(!
И загвоздка еще в том,что уголки нужно вывести именно уголками,а не в строчку.
У кого есть идеи и желания,очень прошу помочь самоучке.
Matfej вне форума Ответить с цитированием
Старый 11.02.2013, 23:41   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,341
По умолчанию

Приведите какой-либо пример, как должно выглядеть (пока не могу понять).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 12.02.2013, 21:09   #7
Matfej
 
Регистрация: 31.12.2012
Сообщений: 9
По умолчанию

Например,матрица 4*4:

1 2 3 4
8 9 10 5
13 14 11 6
16 15 12 7
................................... ...................

1 2 3 4
5
6
7

8 9 10
11
12

13 14
15

16
Где-то так!Только столбцы справа.Пробелы при отправке исчезли.
Matfej вне форума Ответить с цитированием
Старый 12.02.2013, 21:39   #8
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,341
По умолчанию

Код:
#include <iostream>
#include <iomanip>

#define N 5
#define PLACE 4

using namespace std;

int main() {
    int **dynamicArray = new int *[N] ;
    for (int i = 0; i < N; ++i)
        dynamicArray[i] = new int[N];

    for (int i = 0; i < N; ++i) {
        for (int j = 0; j < N; ++j) {
            dynamicArray[i][j] = N * i + j;
            cout << setw(PLACE) << dynamicArray[i][j];
        }
        cout << endl;
    }
    cout << endl;

    for (int k = 0; k < N; ++k) {
        int m = N - k;
        for (int j = 0; j < m; ++j)
            cout << setw(PLACE) << dynamicArray[k][j];
        cout << endl;
        for (int i = k + 1; i < N; ++i)
            cout << setw(m * PLACE) << dynamicArray[i][m - 1] << endl;
        cout << endl;
    }

    for (int i = 0 ; i < N; ++i)
        delete [] dynamicArray[i];
    delete [] dynamicArray;
    return 0;
}
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 12.02.2013 в 22:56.
BDA вне форума Ответить с цитированием
Старый 12.02.2013, 22:45   #9
Matfej
 
Регистрация: 31.12.2012
Сообщений: 9
По умолчанию

Спасибо большое,но это для меня темный лес.
Я до функций еще не дошел!
Почему-то думал,что решение намного легче.
Видимо ошибался.
Matfej вне форума Ответить с цитированием
Старый 12.02.2013, 23:01   #10
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,341
По умолчанию

Пожалуйста.
Может быть можно как-нибудь упростить, но вроде и так достаточно просто.
Со временем это станет для Вас простейшей задачей, если продолжите заниматься.

Для вывода 1 уголка (строки и столбца) 2 цикла - по элементам требуемой строки и по элементам требуемого столбца.
Также нужен цикл для перебора всех рамок.
Осталось чуть подумать, как связать индексы перебора (это уже больше математика - на бумажке прикидываете, выводите формулы).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль. Матрица NxN -> текстовый файл -> Матрица NxN - найти max по диагоналям -> типизированный файл Лунатик13 Помощь студентам 1 20.02.2012 15:54
Матрица ScareCroW12 Помощь студентам 3 16.05.2011 16:12
матрица vidok_ Visual C++ 1 10.05.2011 19:50
Непонятки с DirectX (матрица поворота, камера, матрица проекции) ROD Общие вопросы C/C++ 2 17.09.2010 17:00
TurboPascal: граф, матрица смежности и матрица инцидентности. ulala Помощь студентам 0 02.12.2009 10:11