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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
haseki
3 / 3 / 1
Регистрация: 02.11.2013
Сообщений: 162
#1

Одномерные массивы (перестановка) - C++

19.12.2013, 17:04. Просмотров 215. Ответов 5
Метки нет (Все метки)

Переставить местами четные и нечетные элементы массива. Вводимого с клавиатуры (но можно и рандомно).

Код:
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
#include <cstdlib>
#include <iostream>
#include <cmath>
using namespace std;
 
int main()
{
    setlocale(0, "");
    int n, c;
    cout << "Ââåäèòå ÷èñëî ýëåìåГ*òîâ Г¬Г*Г±Г±ГЁГўГ*: ";
    cin >> n;
 
    double a[n], j, s, x,temp;
    cout << "Ââåäèòå Г·ГЁГ±Г«Г* ÷åðåç ïðîáåë: ";
 
    for (int i = 0; i < n; i++)
    {
        cin >> a[i];
        cout << a[i] << " ";
        cout << endl;
    }
    for(i=0;i<n;i++)
{
 if(i % 2==0)
 {
 c=a[i];
 a[i]=a[i+1];
 a[i+1]=c;
 }
 for (int i = 0; i < n; i++)
    {
        cout << a[i] << " ";
        cout << endl;
    }
    system("pause");
    return 0;
}
Компилятор указывает на ошибку. Помогите, пожалуйста, исправить. Если можно, с подробными комментариями, поскольку только учусь.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2013, 17:04     Одномерные массивы (перестановка)
Посмотрите здесь:

Массивы и перестановка - C++
Помогите пожалуйста с задачей. Дано 2 массива, заполненных случайными числами, размером от 10-20 (рандом). Найти в первом массиве...

Массивы, подсчёт, перестановка элементов. - C++
1)найти кол-во элементов массива больших С 2)найти произведение элементов массива,расположенных после максимального по модулю элемента ...

Одномерные массивы - C++
Помоги решить задачу чтоб. зачёт получить В одномерном массиве размещены: в первых элементах — значения аргумента, в следующих —...

Одномерные массивы - C++
Прошу помочь с заданием В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) произведение отрицательных...

одномерные массивы - C++
в одномерном массиве, состоящем из n вещественных элементов, вычислить произведение элементов массива, расположенных между максимальным и...

одномерные массивы - C++
1. Дано целое число N (&gt; 0). Сформировать и вывести целочисленный массив размера N: • содержащий N первых положительных нечетных чисел; ...

Одномерные массивы в С#(С++) - C++
Помогите пожалуйсто,пишу программу,а она чего-то не хочет писаться,выдает многочисленные ошибки.На основании этой программы нужно сделать...

Одномерные массивы - C++
Помогите с заданием: Добавить N элементов, начиная с номера К.

Одномерные массивы. - C++
Большая просьба помочь мне в решении двух задач! Буду Вам очень признателен, товарищи! задачи выглядят следующим образом: 1....

одномерные массивы - C++
Помогите, пожалуйста, сделать задание, ну хотя бы намекните! В одномерном массиве, который состоит из n действительных чисел, найти сумму...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
recoder
130 / 130 / 28
Регистрация: 13.09.2013
Сообщений: 260
Записей в блоге: 2
19.12.2013, 17:21     Одномерные массивы (перестановка) #2
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
#include <cstdlib>
#include <iostream>
#include <cmath>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int n, c;
    cout << "Введите число элементов массива: ";
    cin >> n;
 
    double a[n], j, s, x,temp;
    cout << "Введите числа через пробел: ";
 
    // Ввод
    for (int i = 0; i < n; i++)
        cin >> a[i];
 
    // Меняем местами элементы массива
    for(int i=0;i<n-1;i++)
    {
        if(i % 2==0)
            {
            c=a[i];
            a[i]=a[i+1];
            a[i+1]=c;
        }
    }
 
cout << endl;
 
// Вывод
for (int i = 0; i < n; i++)
    {
        cout << a[i] << " ";
        cout << endl;
    }
    system("pause");
    return 0;
}
haseki
3 / 3 / 1
Регистрация: 02.11.2013
Сообщений: 162
19.12.2013, 17:51  [ТС]     Одномерные массивы (перестановка) #3
recoder, большое спасибо!

Добавлено через 20 минут
Сортировка полученного массива по возрастанию модулей элементов:


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
#include <cstdlib>
#include <iostream>
#include <cmath>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int n, c;
    cout << "Ââåäèòå êîëè÷åñòâî ýëåìåГ*òîâ Г¬Г*Г±Г±ГЁГўГ*: ";
    cin >> n;
 
    double a[n], j, s, x,temp;
    cout << "Ââåäèòå ýëåìåГ*ГІГ» ÷åðåç ïðîáåë: ";
 
    // Ââîä
    for (int i = 0; i < n; i++)
        cin >> a[i];
 
    // ГЊГҐГ*ГїГҐГ¬ ìåñòГ*ìè ýëåìåГ*ГІГ» Г¬Г*Г±Г±ГЁГўГ*
    for(int i=0;i<n-1;i++)
    {
        if(i % 2==0)
            {
            c=a[i];
            a[i]=a[i+1];
            a[i+1]=c;
        }
    }
 
cout << endl;
cout << "ГЊГ*Г±Г±ГЁГў ïîñëå ïåðåìåГ*Г» ìåñòГ*ìè Г·ГҐГІГ*ûõ ГЁ Г*ГҐГ·ГҐГІГ*ûõ ýëåìåГ*òîâ:\n";
// Âûâîä
for (int i = 0; i < n; i++)
    {
        cout << a[i] << " ";
}
cout << endl;
cout << "\nÝëåìåГ*ГІГ» Гў ïîðÿäêå âîçðГ*Г±ГІГ*Г*ГЁГї ìîäóëåé: " << endl;
    for(int i = 0; i < n-1; ++i)
        for(int j = 0; j < i; ++j)
            if(fabs(a[i]) > fabs(a[i + 1]))
            {
                temp = a[i];
                a[i] = a[i + 1];
                a[i + 1] = temp;
            }
 
    for(int i = 0; i < n; ++i)
        cout<< a[i] << " ";
        cout << endl;
    
 
 
    system("pause");
    return 0;
}

Собственно, сортирует неправильно ==
recoder
130 / 130 / 28
Регистрация: 13.09.2013
Сообщений: 260
Записей в блоге: 2
19.12.2013, 18:05     Одномерные массивы (перестановка) #4
Так?


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
#include <cstdlib>
#include <iostream>
#include <cmath>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int n, c;
    cout << "Введите количество элементов массива: ";
    cin >> n;
 
    double a[n], j, s, x,temp;
    cout << "Введите элементы через пробел: ";
 
    // Ввод
    for (int i = 0; i < n; i++)
        cin >> a[i];
 
    // Меняем местами элементы массива
    for(int i=0;i<n-1;i++)
    {
        if(i % 2==0)
            {
            c=a[i];
            a[i]=a[i+1];
            a[i+1]=c;
        }
    }
 
cout << endl;
cout << "Массив после перемены местами четных и нечетных элементов:\n";
// Вывод
for (int i = 0; i < n; i++)
    {
        cout << a[i] << " ";
}
cout << endl;
cout << "\nЭлементы в порядке возрастания модулей: " << endl;
    for(int i = 0; i < n-1; ++i)
        for(int j = 0; j < n-1; ++j)
            if(fabs(a[j]) > fabs(a[j + 1]))
            {
                temp = a[j];
                a[j] = a[j + 1];
                a[j + 1] = temp;
            }
 
    for(int i = 0; i < n; ++i)
        cout<< a[i] << " ";
        cout << endl;
    
 
 
    system("pause");
    return 0;
}
haseki
3 / 3 / 1
Регистрация: 02.11.2013
Сообщений: 162
19.12.2013, 19:55  [ТС]     Одномерные массивы (перестановка) #5
recoder, да-да, огромное спасибо!
recoder
130 / 130 / 28
Регистрация: 13.09.2013
Сообщений: 260
Записей в блоге: 2
19.12.2013, 19:58     Одномерные массивы (перестановка) #6
Не за что)
Yandex
Объявления
19.12.2013, 19:58     Одномерные массивы (перестановка)
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru