Форум программистов, компьютерный форум CyberForum.ru

Заполнение не квадратной матрицы по диагоналям змейкой - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вывод текста в конкретной позиции окна http://www.cyberforum.ru/cpp-beginners/thread640925.html
Дана задача: Есть некоторая строка вида - Введите дату __.__.__(ДД.ММ.ГГГГ) Необходимо,чтобы "Введите дату" отобразилось через координаты в одном месте окна, __.__.__ в другом с вводом данных через клавиатуру и проверкой на правильность ввода. Реализуемо это через чистый С++?
C++ Дано натурально число N. Сколько различных цифр встречается в его десятичной записи? Дано натуральное число n. Определить количество различных цифр в нем. Например, в числе 1234 количество различных цифр равно 4, а числе 22424-2, а числе 333-1. http://www.cyberforum.ru/cpp-beginners/thread640924.html
C++ Выделение памяти под структуры
Когда я только знакомился с кодингом на С(С++) я скачивал с инета очень много всякой литературы... Так вот... Недавно я начал заново перечитывать эти книжки(статьи), хотел проверить насколько я продвинулся. (лол че...) Наткнулся на такую вот инфу: Когда sizeof применяются к имени типа структуры или объединения или к идентификатору имеющему тип структуры или объединения, то результатом является...
Сортировка вектора массива после удалание элемента C++
дан массив векторов из 20 чисел; vectorArr = {0,1,2,3,4,5...}; удаляем методом vectorArr.erase(vectorArr.begin()+index); вопрос : как отсортировать массив по убыванию после удаления? типа ( выбрали число vectorArr , тогда vectorArr принимает значение vectorArr т.е равная трём. и так далее до 20.
C++ Приведение void указателя к определенному типу с сохранением результата http://www.cyberforum.ru/cpp-beginners/thread640866.html
Есть функция funс(void *pointer, char type) { ... } Нужно чтобы в данной функции этот указатель приводился к определенному типу в зависимости от type, так, чтобы дальше можно было с ним работать без постоянного приведения типа через скобки. Пробовал создавать другой указатель нужного типа: if(type) typeone *pointer2 = (typeone *)pointer; else typetwo *pointer2 = (typetwo...
C++ Преобразование в указатель на указатель на константу В упор не могу понять правила которые приводит Дьюхерст для преобразований "многоуровневых" указателей. (Дьюхерст "Скользкие места С++" Совет 32 "Преобразование в указатель на указатель на константу" стр 79) Пример: int ***const cnnn= 0; подробнее

Показать сообщение отдельно
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
22.08.2012, 19:00     Заполнение не квадратной матрицы по диагоналям змейкой
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
#define ROWS 10
#define COLS 12
 
int main()
{
    int** matrix = new int*[ROWS];
    for (int z1 = 0; z1 < ROWS; z1++)
    {
        matrix[z1] = new int[COLS];
        for (int z2 = 0; z2 < COLS; z2++)
            matrix[z1][z2] = 0;
    }
 
    bool move = false; int sval = 3;
    for (int scoln = 1; scoln < COLS; scoln++)
    {
        if (scoln-1 == 0) matrix[0][0] = 1; 
        int column = scoln+1, number = sval; 
        for (int row = 0; row < ROWS && --column >= 0; row++)
        {
            matrix[row][column] = number;
            number = (!move) ? number-1 : number+1;
        }
 
        if (move != false)
        {
            move = false;
            if (scoln < ROWS-1) 
                sval = number + (scoln+1);
            else if (scoln >= ROWS-1 && scoln < COLS-2) 
                sval = number + scoln;
            else sval = number + (ROWS-1);
        }
 
        else {
            move = true; 
            sval++; 
        }
    }
 
    sval--;
 
    for (int srown = 1; srown < ROWS; srown++)
    {
        int column = COLS, number = sval; 
        for (int row = srown; row < ROWS && --column >= 0; row++)
        {
            matrix[row][column] = number;
            number = (!move) ? number-1 : number+1;
        }
        
        if (move != false)
        {
            move = false;
            sval = number + (COLS-(column+1)) - 1;
        }
 
        else {
            move = true; 
            sval++; 
        }
    }
 
    for (int m1 = 0; m1 < ROWS; m1++)
    {
        for (int m2 = 0; m2 < COLS; m2++)
            if (matrix[m1][m2] >= 0 && matrix[m1][m2] <= 9)
                printf(" %d ",matrix[m1][m2]);
            else printf("%d ",matrix[m1][m2]);
        printf("\n");
    }
 
    _getch();
 
    return 0;
}
http://liveworkspace.org/code/575896...758dd482b42ae6
Миниатюры
Заполнение не квадратной матрицы по диагоналям змейкой   Заполнение не квадратной матрицы по диагоналям змейкой  
 
Текущее время: 12:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru