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

В массиве перевернуть каждую группу из N элементов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ошибка "vold" does not name a type http://www.cyberforum.ru/cpp-beginners/thread256124.html
#include <iostream> #include <fstream> using namespace std; void pover(); //обьявление функции int main(int argc, char *argv) { double n, nn;
C++ Кодировка, ASСII #include <iostream> using namespace std; #include <iomanip> #define LINEL 20 #define LINEB 40 #define OTSTUP 5 ostream& lineL(ostream& p) http://www.cyberforum.ru/cpp-beginners/thread256116.html
Ввод вывод C++
Заполнить файл последовательного доступа f целыми числами, полученными с помощью генератора случайных чисел. Получить в файле g все компоненты файла f, которые делятся на m и не делятся на n.
C++ Решение СЛАУ методом Крамера
Доброго времени суток! Пишу курсовую по методу Крамера. Вроде ничего сложного, но программированием я занимаюсь не часто, скачал с нета реферат по теме с исходником. Вставил в прогу защиту от ввода в поток из цифр буквенных символом, приукрасил немножко... Так как опыта мало, посмотрите плз, может что коряво написано, где улучшить можно. Жду критики)) #include <iostream> #include <iomanip>...
C++ задачи о вложенных циклах http://www.cyberforum.ru/cpp-beginners/thread256087.html
1)Дана матрица А(m,n). Перемножить элементы с четной суммой индексов I+J. Найти максимальные элементы каждого столбца матрицы. 2)Даны действительные числа а1, а2, … , а24. Получить последовательность b1, b2, … , b10, где b1= a1+a2+a3+...+a24 b2= a1^2+a2^2+....+a24^2 ..... a10= a1^10+a2^10+...+a24^10
C++ Две правые треугольные матрицы А и В порядка n Помогите пожалуста. Язык Си Две правые треугольные матрицы А и В порядка n заданы так, как описаны в предыдущей задаче. Получить в аналогичном виде. Mатрицу A(E+B^2) где Е – единичная матрица порядка n. подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
13.03.2011, 11:02     В массиве перевернуть каждую группу из N элементов
Вот совсем без циклов, для общего развития:
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define M 12
#define N 6
 
void swap(void* a, void* b, void* buf, size_t size);
void swapGroup(int* array, size_t arraySize, size_t groupSize, int currGroupSize);
void dump(const int* array, size_t size);
 
int main(void)
{
    int array[M] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
 
    puts("Initial array:");
    dump(array, M);
    swapGroup(array, M, N, N);
    puts("The result:");
    dump(array, M);
    
    exit(0);
}
 
void swap(void* a, void* b, void* buf, size_t size)
{
    memcpy(buf, a, size);
    memcpy(a, b, size);
    memcpy(b, buf, size);
}
 
void swapGroup(int* array, size_t arraySize, size_t groupSize, int currGroupSize)
{
    static int buf;
    
    if(arraySize == 0)
    return;
 
    if(currGroupSize <= 0)
    currGroupSize = groupSize, array += groupSize / 2;
 
    swap(array, array + currGroupSize - 1, &buf, sizeof(int));
    swapGroup(array + 1, arraySize - 2, groupSize, currGroupSize - 2);
}
 
void dump(const int* array, size_t size)
{
    if(size == 0)
    {
    putchar('\n');
    return;
    }
    
    printf("%d ", *array);
    dump(array + 1, size - 1);
}
 
Текущее время: 04:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru