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

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

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

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

19.12.2013, 17:04. Просмотров 242. Ответов 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;
}
Компилятор указывает на ошибку. Помогите, пожалуйста, исправить. Если можно, с подробными комментариями, поскольку только учусь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2013, 17:04
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Одномерные массивы (перестановка) (C++):

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

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

Одномерные массивы - C++
Нужна помощь: как в одномерном массиве, в котором не задан размер, найти первый и последний элементы??? Например, даны две задачки: ...

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

Одномерные массивы - C++
Привет можете посмотреть мой код и сказать что подправить.(не уверен правильно ли считает числа отличающиеся от заданнго на 0.5) ...

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

5
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;
}
1
haseki
3 / 3 / 1
Регистрация: 02.11.2013
Сообщений: 164
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;
}

Собственно, сортирует неправильно ==
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;
}
1
haseki
3 / 3 / 1
Регистрация: 02.11.2013
Сообщений: 164
19.12.2013, 19:55  [ТС] #5
recoder, да-да, огромное спасибо!
0
recoder
130 / 130 / 28
Регистрация: 13.09.2013
Сообщений: 260
Записей в блоге: 2
19.12.2013, 19:58 #6
Не за что)
0
19.12.2013, 19:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.12.2013, 19:58
Привет! Вот еще темы с ответами:

Одномерные массивы: - C++
Подсчитать количество и сумму положительных элементов одномерного массива.

Одномерные массивы - C++
Помогите решить задачи: 1) В массиве T(k) найти номера первого и последнего нулевых элементов. 2) Дан двумерный массив размерностью 5...

Одномерные массивы - C++
Задание во вложении, сделал как понял задание, но с ошибками, которые ни как не могу найти. Даны 3 одномерных массива, в каждом посчитать...

Одномерные массивы С++ - C++
Помогите пожалуйста написать программку! Заполнение динамического целочисленного массива длинной N. Отсортировать массив по...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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