С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Использование шаблона функции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Прочитать 5-ю строку из файла http://www.cyberforum.ru/cpp-beginners/thread1175569.html
подскажите пожалуйста как с помощью потоков прочесть текстовую строку и поместить её в массив?
C++ Найти максимальное число из, встречающихся в матрице более одного раза Хей. Есть рабочая программа, но для её полной правильности в ней нужно использовать Функцию или процедуру. Задание: Найти максимальное число из чисел, встречающихся в заданной матрице размером nxn... http://www.cyberforum.ru/cpp-beginners/thread1175561.html
Неопознанный вылет калькулятора C++
функция перевода стала криво работать после переписывания кода на классы. при запуске просто зависает. есть какие-то идеи? #pragma once #include <iomanip> //Подключение манипуляторов ввода-вывода...
Заменить на 0 значения элементов матрицы, лежащих выше главной диагонали C++
Ребят помогите!!! сижу на экзамене Необходимо создать приложение в визуальной среде, которое запрашивает размерность квадратного двумерного массива, заполняет массив случайными числами от 3 до...
C++ Перегрузка методов класса Прямоугольник http://www.cyberforum.ru/cpp-beginners/thread1175538.html
1.Продемонстрировать перегрузку функций-членов класса "Прямоугольник", функция член – "Нарисовать". Различать случаи собственно прямоугольника и квадрата. Программа рисует квадрат и прямоугольник...
C++ Как работает cout? есть такая функция void output(recipe *list, int N){ for(int i=0; i<N; i++){ cout<<list.name<<endl; cout<<"руб"<<list.price<<list.ccal<<list.time<<"\n\n"; } }работает ну ооочень странно подробнее

Показать сообщение отдельно
Ilot
Модератор
Эксперт С++
1823 / 1181 / 232
Регистрация: 16.05.2013
Сообщений: 3,118
Записей в блоге: 5
Завершенные тесты: 1
15.05.2014, 14:07
Код не шлифовал, но он работает:
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <ctime>
#include <algorithm>
void CircleMoveMatrixElement(int** array, int i, int k, int N);
void CircleCopyMatrix(int** array, int* temp, int i, int N);
void CircleCopyMatrixBack(int** array, int* temp, int i, int N);
int main (int argc, char* argv[])
{
    const int n = 5;
    int** arr;
    arr = new int*[n];
    for (int i = 0; i < n; ++i)
        arr[i] = new int[n];
    srand(time(NULL));
    for (int k = 0; k < n; ++k)
        for (int s = 0; s < n; ++s)
            arr[k][s] = rand()%10;
 
    for (int k = 0; k < n; ++k) {
        for (int s = 0; s < n; ++s)
            std::cout << arr[k][s] << ' ';
        std::cout << std::endl;
    }
    std::cout << std::endl;
    for(int i = 0; i < n / 2; ++i)
        CircleMoveMatrixElement(arr, i, n - 2 * i -1, n);
 
 
    for (int k = 0; k < n; ++k) {
        for (int s = 0; s < n; ++s)
            std::cout << arr[k][s] << ' ';
        std::cout << std::endl;
    }
    std::cout << std::endl;
    return 0;
}
void CircleMoveMatrixElement(int** array, int i, int k, int N) {
    int SIZE = 4 * (N - 2* i -1);
    int* temp = new int[SIZE];
    CircleCopyMatrix(array, temp, i, N);
    std::rotate(&temp[0], temp + SIZE - k, &temp[SIZE]);
    CircleCopyMatrixBack(array, temp, i, N);
    delete [] temp;
}
void CircleCopyMatrix(int** array, int* temp, int i, int N) {
    int count = 0;
    for(int s = i; s < (N - i - 1); ++s, ++count)
        temp[count] = array[i][s];
    for(int s = i; s < (N - i - 1); ++s, ++count)
        temp[count] = array[s][N - i - 1];
    for(int s = N - i - 1; s > i ; --s, ++count)
        temp[count] = array[N - i - 1][s];
    for(int s = N - i - 1; s > i ; --s, ++count)
        temp[count] = array[s][i];
}
void CircleCopyMatrixBack(int** array, int* temp, int i, int N) {
    int count = 0;
    for(int s = i; s < (N - i - 1); ++s, ++count)
        array[i][s] = temp[count];
    for(int s = i; s < (N - i - 1); ++s, ++count)
        array[s][N - i - 1] = temp[count];
    for(int s = N - i - 1; s > i ; --s, ++count)
        array[N - i - 1][s] = temp[count];
    for(int s = N - i - 1; s > i ; --s, ++count)
        array[s][i] = temp[count];
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.