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

Сдвиг элементов в столбце на две позиции вниз по кругу - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Цикл: Вычислить значение выражение http://www.cyberforum.ru/cpp-beginners/thread1089190.html
y=45x/(5!-44x/(4!-43/(3!-42x/(2!-4x/(1-x))))) С решением и цикл с предусловием плз
C++ Отпечатать расстояния от начала координат для тех точек,которые принадлежат кругу с заданным радиусом, и число таких точек. 1)Значение f(k) заключено между значениями t1= -a - √(b+m), t2=√(a+b+m),но не равно нулю. 2)Дана матрица из 2 столбцов и 10 строк.Первый элемент каждой строки представляет абсциссу,второй ординату из 10 точек плоскости.Отпечатать расстояния от начала координат для тех точек,которые принадлежат кругу с заданным радиусом, и число таких точек. http://www.cyberforum.ru/cpp-beginners/thread1089160.html
Замена первой строки на последнюю C++
Вот моя рабочая программка: #include "stdafx.h" #include <iostream> #include <time.h> using namespace std; int main() { int j, k, N, M, a, b; srand(time(NULL)); cout << "(N x M), N="; cin >> N; // Вводим размерность
C++ нарисовать треугольник
#include<iostram> using namespace std; void main(){ int x; cin >>x; if (x %2 ==0) x++; for ( int i=0; i<x/2; i++){ for ( int j=0;j<x; j++){
C++ Русские символы в консоли выводятся нормально, латиница - нет http://www.cyberforum.ru/cpp-beginners/thread1089155.html
Добрый день. Подскажите пожалуйста, столкнулся с следующей проблемой, когда вывожу в консоль русские символы все выводится нормально, пока не начинаю выводить переменные. К примеру конструкция: cout<<name; Выведет на экран иероглифы, в то же время когда строка: cout<<"русский текст"; Выведет вполне читаемые русские символы. Заранее спасибо за помощь.
C++ Добавление строки в массив Добрый день! Поставил себе задачу написать класс для работы со строками (куча разнообразных методов). В данный момент застрял над реализацией метода для добавления строк в массив, код принял следующий вид: #include <iostream> using namespace std; //словарь class stroka { public: подробнее

Показать сообщение отдельно
castorsky
1950 / 1040 / 78
Регистрация: 29.11.2013
Сообщений: 3,262
07.02.2014, 04:27     Сдвиг элементов в столбце на две позиции вниз по кругу
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
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <iomanip>
 
using namespace std;
 
class matr {
public:
    matr() : m(5), n(5)
    {
        rows = new int* [n];
        column = new int [m * n];
        unsigned counter = 0;
 
        for (unsigned i = 0; i < n; i++)
            rows[i] = column + i * n;
 
        for (unsigned i = 0; i < n * m; i++)
            column[i] = rand() % (n * m);
    }
 
    void dump ()
    {
        for (unsigned i = 0; i < n; i++)
        {
            for (unsigned j =0; j < m; j++)
                cout << setw(3) << rows[i][j];
            cout << endl;
        }
        cout << endl;
    }
 
    void rotate (int n)
    {
        for (unsigned j = 0; j < m; j++)
            if (this->true_foo(j))
                this->make_shift(j, n);
    }
 
    bool true_foo (unsigned col)
    {
        int min = this->rows [0][col];
        int max = this->rows [0][col];
        int maxstor, minstor;
 
        for (unsigned i = 0; i < n; i++)
        {
            if (min > this->rows[i][col])
            {
                min = this->rows[i][col];
                minstor = i;
            }
 
            if (max < this->rows[i][col])
            {
                max = this->rows[i][col];
                maxstor = i;
            }
        }
 
        return (maxstor - minstor > 2 or maxstor - minstor < -2);
    }
 
    void make_shift (unsigned j, unsigned shift)
    {
        if (shift == n)
            return;
 
        if (shift > n or shift < -n)
            shift %= n;
 
        if (shift < 0)
            shift += n;
 
        int t[n];
 
        for (unsigned i = 0; i < n; i++)
            t[(i + shift) % n] = this->rows[i][j];
        for (unsigned i = 0; i < n; i++)
            this->rows[i][j] = t[i];
    }
 
    ~matr()
    {
        delete [] column;
        delete [] rows;
    }
 
private:
    const unsigned n, m;
    int **rows;
    int *column;
};
 
int main ()
{
    srand(time(0));
 
    matr a;
    a.dump();
    a.rotate(2);
    a.dump();
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru