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

Двухмерный массив (заполнить змейкой квадратную матрицу) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Работа с матрицей С++ Visual Studio http://www.cyberforum.ru/cpp-beginners/thread960484.html
Люди, помогите сделать задание с матрицей. Вобщем: Дана матрица натуральных чисел (Xij) порядка m*n. Упорядочить столбцы матрицы за неспаданием (это вообще непонятно, что имеется ввиду) максимальных элементов столбцов. Добавлено через 3 часа 41 минуту Обьясните хотя бы как сделать: Упорядочить столбцы матрицы за неспаданием)) Меня ведь завтра порвут... :(
C++ Работа с файлами Задача программы такова - пользователь вводит строку адреса , например C:\blablabla и программа считывает все размеры файлов хранящихся в этой и всех вложенных папках, определяет дату создания и права доступа к файлам. Подскажите в какои библиотеке есть функционал для этого? http://www.cyberforum.ru/cpp-beginners/thread960471.html
Найти наибольший общий делитель чисел C++
Найти наибольший общий делитель чисел M и N используя метод Эйлера: если M делится на N, то НОД (N, M) = N, иначе НОД (N, M) = НОД (M % N, N).Решить задачу двумя способами – с применением рекурсии и без нее. Помогите пожалуйста.
C++ задачка на объединения
с клавиатуры вводится комплексное число и натуральное число n. нужно вычислить корень n-ой степени из этого комплексного числа.
C++ Работа с файлом http://www.cyberforum.ru/cpp-beginners/thread960451.html
char *FileName ="123.txt"; int h=fileno(fopen(FileName,"r+")); FileName="\0"; Как мне теперь используя только h работать с файлом? Как записывать в файл и читать, и как закрыть, зная только h?
C++ Тех. задание дипломной работы Привет! В этом учебном году защищаю диплом, в связи с чем у меня возникли некоторые организационные вопросы. Планируется реализовать дипломку в C++. Необходимо автоматизировать работу с документацией, для сокращения макулатуры у преподавателей. Преподаватели хотят иметь возможность работать с документацией в любом месте, при любых обстоятельствах. Например: 1) Если есть доступ к... подробнее

Показать сообщение отдельно
Gubila_2000
 Аватар для Gubila_2000
0 / 0 / 0
Регистрация: 07.11.2014
Сообщений: 134
Записей в блоге: 1
06.06.2015, 19:27     Двухмерный массив (заполнить змейкой квадратную матрицу)
ArtFeather, четные и нечетные диагонали! Точно! Спасибо! Я эту закономерность не проследил видимо потому, что брал слишком маленькие массивы для контрольного примера.

Добавлено через 38 минут
ArtFeather, а, хотя нет, алгоритм нужно немного поменять, так как он работает немного неправильно с матрицами нечетной размерности. Это можно исправить поставив условие четности размерности, но таким образом код увеличится в 2 раза.

Добавлено через 21 минуту
вот я подправил. Программа прошла все тесты
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#include <stdio.h>
 
#define n 101
 
unsigned a[n][n];
 
void matr_snake(int N)
{
    int i, x, y, k=1;
    
    for (i=0; i<N; i++) // первая половина
    {
        if (i%2==0) // по четным диагоналям
        {
            x=0;
            y=i;
 
            while (y>=0)
            {
                a[x][y]=k;
                x++; y--; k++;
            }
        }
        else // по нечетным
        {
            x=i; y=0;
            while (x>=0)
            {
                a[x][y]=k;
                k++; x--; y++;
            }
        }
    }
    if (N%2!=0){
    for (i=1; i<N; i++) // вторая половина
    {
        if (i%2==0)
        {
            x=i; y=N-1;
            while (x<=N-1)
            {
                a[x][y]=k;
                k++; x++; y--;
            }
        }
        else
        {
            x=N-1; y=i;
            while (y<=N-1)
            {
                a[x][y]=k;
                k++; x--; y++;
            }
        }
    }
    }
    else
    {
    for (i=1; i<N; i++) // вторая половина
    {
        if (i%2==0)
        {
            x=N-1; y=i;
            while (y<=N-1)
            {
                a[x][y]=k;
                k++; x--; y++;
            }
        }
        else
        {
            x=i; y=N-1;
            while (x<=N-1)
            {
                a[x][y]=k;
                k++; x++; y--;
            }
        }
    }
    }
}
 
 
void main()
{
    int N, i, x, y, k=1, p=0;
    // unsigned a[n][n];
    FILE *f;
 
    f = fopen ("INPUT.TXT", "r");
    fscanf(f, "%d", &N);
    fclose(f);
 
    matr_snake(N);
    
    
    f=fopen("OUTPUT.TXT", "w");
    for (x=0; x<N; x++){
        for (y=0; y<N; y++)
            fprintf(f, "%d ", a[x][y]);
            fprintf(f, "\n");
    }
    fclose(f);
}
 
Текущее время: 01:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru