Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 1
Регистрация: 17.09.2014
Сообщений: 7
1

Поменять диагонали двумерного массива

27.09.2014, 22:01. Показов 1085. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ребята почти доделал программу, но нуждаюсь вашей помощи.Помогите с заменой диагоналей.Возможно нужно что то подправить,желательно через указатели.Буду благодарен очень за Вашу помочь.


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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
#include <iostream>
#include <windows.h>
#include <ctime>
#include <conio.h>
#include <iomanip>
using namespace std;
void gotoxy(short x, short y)
{
    COORD coord = { x, y };
    HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleCursorPosition(h, coord);
}
enum ConsoleColor
{
    Black, Blue, Green, Cyan, Red, Magenta, Brown, LightGray, DarkGray, LightBlue,
    LightGreen, LightCyan, LightRed, LightMagenta, Yellow, White
};
void SetColor(int text, int background = Black)
{
    HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hStdOut, (WORD)((background << 4) | text));
}
 
void a(int mass[9][9])
{
    for (int i = 0; i < 9; i++)
    {
        for (int j = 0; j < 9; j++)
        {
            *(*(mass + i) + j) = rand() % 25+1 ;
            cout << setw(3) << *(*(mass + i) + j) << " ";
        }
        cout << endl;
    }
    cout << endl;
}
void b(int mass[9][9])
{
    int *min, *t;
    int(*p)[9] = mass;
    for (int *p = *mass; p < *mass + 9 * 9; p++)
    {
        min = p;
        for (t = p ; t < *mass + 9 * 9; t++)
        {
            if (*t < *min)
            {
                min = t;
            }
            swap(*p, *min);
        }
    }
    for (; p < mass + 9; p++)
    {
        for (int *r = *p; r < *p + 9; r++)
        {
            cout << setw(3) << *r << " ";
        }
        cout << endl;
    }
}
void c(int mass[9][9])// вот здеся и нужна помощь
{
    for (int i = 0; i < 9; i++)
    {
        int tmp = mass[i][i];
        mass[i][i] = mass[i][9 - i];
        mass[i][9 - i] = tmp;
    }
 
    for (int i = 0; i < 9; i++)
    {
        for (int j = 0; j < 9; j++)
            cout << setw(3) << mass[i][j] << " ";
        cout << endl;
    
    }
    
 
}
void d(int mass[9][9])
{
 
}
 
 
void main()
{
    setlocale(LC_ALL, "");
    srand(time(NULL));
 
    int mass[9][9];
    char s = 0;
    int k = 1;
    void(*pf[4])(int mass[9][9]) = { a , b , c , d };
 
    do
    {
 
        if (s == 80)
        {
            k++;
            if (k == 5)
            {
                k = 1;
            }
        }
        if (s == 72)
        {
            k--;
            if (k == 0)
            {
                k = 4;
            }
        }
        if (s == 13)
        {
            if (k == 1)
            {
                gotoxy(0, 3);
                system("cls");
                pf[k - 1](mass);
            }
            if (k == 2)
            {
                gotoxy(0, 3);
                system("cls");
                pf[k - 1](mass);
            }
            if (k == 3)
            {
                gotoxy(0, 33);
                system("cls");
                pf[k - 1](mass);
            }
            if (k == 4)
            {
                system("cls");
                pf[k - 1](mass);
                break;
            }
        }
 
        if (k == 1)SetColor(Cyan, 0);
        {
            gotoxy(50, 3);
            cout << "1. Вывести массив" << endl;
            SetColor(7, 0);
        }
        if (k == 2)SetColor(Cyan, 0);
        {
            gotoxy(50, 5);
            cout << "2. Отсортировать массив" << endl;
            SetColor(7, 0);
        }
        if (k == 3)SetColor(Cyan, 0);
        {
            gotoxy(50, 7);
            cout << "3. Поменть диагонали местами" << endl;
            SetColor(7, 0);
        }
        if (k == 4)SetColor(Cyan, 0);
        {
            gotoxy(50, 9);
            cout << "4. Выход" << endl;
            SetColor(7, 0);
        }
    } while (s = _getch());
 
 
    gotoxy(0, 23);
 
    /*вывести 2мерный массив,
    отсортировать массив,
    диагонали наоборот
    выход*/
}
Добавлено через 17 минут
Вопрос решен
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.09.2014, 22:01
Ответы с готовыми решениями:

Сортировка главной диагонали двумерного массива
Всем привет. Решаю задачу столкнулся с проблемой: Не могу отсортировать главную диагональ...

Вывести числа диагонали двумерного массива
Дан двумерный массив размера N×N. Требуется вывести на экран все элементы его главной диагонали,...

Заполнение двумерного массива (зануление диагонали)
Всем добрый вечер, прошу вашей помощи... дан массив 6х6, заполненный числами по порядку. Нужно...

Отражение двумерного массива относительно главной диагонали
Помогите пожалуйста, надо отразить заданный двумерный массив относительно главной диагонали.

1
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,713
27.09.2014, 22:46 2
Цитата Сообщение от AmericanHero Посмотреть сообщение
for (int i = 0; i < 9; i++)
{
int tmp = mass[i][i];
...
Вы делаете очень известную ошибку:
Двойная перестановка строк или элементов массива.
1
27.09.2014, 22:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.09.2014, 22:46
Помогаю со студенческими работами здесь

Разработать функцию зануления главной диагонали двумерного массива
Программа подработана для такого задания: Разработать функцию зануления строки двумерного массива....

Найти среднее арифметическое побочной диагонали двумерного массива
HEEELP Найти среднее арифметическое побочной диагонали двумерного массива

Сумма элементов главной диагонали двумерного массива(матрицы)
Суть в том, что задаётся размерность матрицы (количество строк(i) равно количеству столбцов(j)),...

Вычислить сумму элементов главной диагонали двумерного массива
1. Вычислить значение N! (факториал) как сделать чтобы он сразу после ввода N выводил результат...

Найти сумму элементов главной диагонали двумерного массива
Найти сумму елементов главной диагонали.

Поменять местами элементы двумерного массива
Поменять местами элементы второй область с элементами третей области. Вот начало програмки....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru