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

Отразить элементы массива! - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Файл: Поменять местами минимальный и максимальный элементы. http://www.cyberforum.ru/cpp-beginners/thread551821.html
Дан файл вещественных чисел. Поменять в нём местами минимальный и максимальный элементы. На ум приходит только перенести все числа в массив, поменять в нём местами мин. и макс. элементы, внести...
C++ Простенькая для вас задача посмотрите если не трудно Дано натуральное число n (n<10000). Определить сколько цифр в числе, найти первую цифру числа, найти предпоследнюю цифру числа. P.s Только важное условие чтобы при невыполнении условий, программа не... http://www.cyberforum.ru/cpp-beginners/thread551814.html
C++ Сортировка подсчетом
Доброго времени суток. Написал код, вот только выдает ошибку: error C2061: синтаксическая ошибка: идентификатор "a". error C2061: синтаксическая ошибка: идентификатор "b" (строки 26 и 35). Подскажите...
invalid operands of types 'double' and 'int' to binary 'operator%' C++
В строке где If выдает вот эту ошибку 2 раза: invalid operands of types 'double' and 'int' to binary 'operator%' #include <iostream> #include <cmath> using namespace std; int main() {
C++ Для заданных вещественных чисел а, b, c определить, имеет ли уравнения ax2+bx+c=0, хотя бы одно вещественное решение. http://www.cyberforum.ru/cpp-beginners/thread551766.html
Для заданных вещественных чисел а, b, c определить, имеет ли уравнения ax2+bx+c=0, хотя бы одно вещественное решение. помогите решить на с++
C++ Вычислить сумму квадратов всех элементов заданного массива A(N), за исключением элементов, кратных пяти. Вычислить сумму квадратов всех элементов заданного массива A(N), за исключением элементов, кратных пяти. подробнее

Показать сообщение отдельно
Serg92

Отразить элементы массива! - C++

18.04.2012, 17:55. Просмотров 361. Ответов 0
Метки (Все метки)

Помогите пожалуйста!

Вот исходное задание: Задан массив A(M), число элементов которого кратно N. Отразить каждую группу из N элементов. Элементы массива – вещественные числа в диапазоне ±1000, M - целое число в диапазоне [2, 20], N - целое число в диапазоне [1, 20]

Например: М=8, N=4, Исходный массив : 0 1 2 3 4 5 6 7
Отражённый массив 3 2 1 0 7 6 5 4
Если M не кратно N, выдать сообщение об ошибке!

Это я сделал! Теперь нужно, чтобы программа отражала элементы массива даже тогда, когда M не кратно N. Например: М=10, N=4, Исходный массив: 0 1 2 3 4 5 6 7 8 9
Отражённый массив 3 2 1 0 7 6 5 4 9 8
Помогите, очень прошу! У меня с массивами не очень!

Вот код, где массив отражается, когда M кратно N.

C++ (Qt)
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
#include "stdafx.h"
#include "testing.h" 
 
int _tmain(int argc, _TCHAR* argv[])
{
 
    //Исходный массив
    int a[20];
    //Размерность массива
    int M,N;
 
    //Ввод размерности массиваgg
 
    input_printf("input N = ");
    scanf("%d", &N);
 
    input_printf("array size = ");
    scanf("%d", &M);
 
    //ПРоверка, не выходит ли размерность массива за заданные рамки
    if(M < 2 || M > 20)
    {
        error_printf("invalid array size !!!");
        WAIT_ANY_KEY
            return 0;
    }
 
    if(N>M || N<1 || N>20)
    {
        error_printf("invalid N !!!");
        WAIT_ANY_KEY
            return 0;
    }
    
    //Проверяем, кратно ли M
    if(M % N !=0)
    {
        error_printf("n ne cratno");
        return 0;
    }
 
    //Ввод исходного массива размерностью М
    for(int i = 0; i < M; i++)
    {
        input_printf("input a[%d] =",i);
        scanf("%d",&a[i]);
        //Проверка, не выходит ли число за диапазон
        if(a[i]>1000 || a[i] < -1000)
        {
            error_printf("out of range !!!");
            WAIT_ANY_KEY
                return 0;
        }
    }
    int i=0, j = 0, k=0;
 
    while(i < M)
    {
        if(i<j*N+(int)((N)/2))
        {
            a[i] += a[i - k + N - 1 - k]; 
            a[i - k + N - 1 - k] = a[i] - a[i - k + N - 1 - k] ; 
            a[i] = a[i] - a[i - k + N - 1 - k] ; 
            k++;
        }
        printf("%d",a[i]);
        i++;
        if(i%N == 0)
        {
            k = 0;
            j++;
        }
    }
    return 0;
}
Добавлено через 1 час 18 минут
Помогите, очень нужно! Всего лишь небольшая модификация!(
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru