Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 24.07.2014
Сообщений: 22
1

Нужно, чтобы функция изменяла порядок элементов на противоположный

27.08.2014, 20:10. Показов 1514. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
#include <iostream>
const int Max = 5;
 
int fill_array(double ar[], int limit);
void show_array(double ar[], int n);  
void reverse_array(double ar[], int n);
 
int main()
{
    using namespace std;
    double properties[Max];
 
    int size = fill_array(properties, Max);
    show_array(properties, size);
    if (size > 0)
    {
        cout << "Enter revaluation factor: ";
        double factor;
        while (!(cin >> factor))  
        {
            cin.clear();
            while (cin.get() != '\n')
            if (isdigit(cin.get()))
                continue;
           cout << "Bad input; Please enter a number: ";
        }
        reverse_array(properties, size);
        show_array(properties, size);
    }
    cout << "Done.\n";
    // cin.get();
    // cin.get();
    return 0;
}
 
int fill_array(double ar[], int limit)
{
    using namespace std;
    double temp;
    int i;
    for (i = 0; i < limit; i++)
    {
        cout << "Enter value #" << (i + 1) << ": ";
        cin >> temp;
        if (!cin)    
        {
            cin.clear();
            while (cin.get() != '\n')
                continue;
           cout << "Bad input; input process terminated.\n";
           break;
        }
        else if (temp < 0)    
            break;
        ar[i] = temp;
    }
    return i;
}
 
void show_array(const double ar[], int n)
{
    using namespace std;
    for (int i = 0; i < n; i++)
    {
        cout << "Property #" << (i + 1) << ": $";
        cout << ar[i] << endl;
    }
}
 
void reverse_array(double ar[], int n)
{
    for (int i = 0; i < n; i++)
    return;
        reverse_array(ar, n-1);
}
Помогите исправить ошибку. Нужно чтобы функция reverse_array() изменяла порядок элементов на противоположный.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.08.2014, 20:10
Ответы с готовыми решениями:

Функция, меняющая порядок следования элементов массива на противоположный
Написать функцию, меняющую порядок следования элементов передаваемого ей массива на...

Исправить код так, чтобы функция obnulenie изменяла элементы структуры
#include &lt;stdio.h&gt; struct asd { public: int j; char s; }; void obnulenie() {

как сделать чтобы функция не изменяла переданный в нее двумерный массив в главной программе?
вот такая вот программка. не могу понять почему матрица переданная в функцию изменяется в главной...

Изменить порядок элементов массива на противоположный
В с++ есть команда, которая изменяет порядок элементов массива на противоположные?

5
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
27.08.2014, 20:22 2
C++
1
2
3
4
5
6
7
8
9
10
void reverse_array(double ar[], int n)
{
    for (int i = 0; i < n/2; i++)
       {
         double temp = ar[i];
         ar[i] = ar[n-1-i];
         ar[n-1-i] = temp;
       }
   
}
Добавлено через 1 минуту
C++
1
using namespace std;
после подключений библиотек, а не в main()
1
47 / 39 / 15
Регистрация: 28.09.2012
Сообщений: 818
27.08.2014, 20:29 3
C++
1
2
3
4
5
6
void reverse_array(double ar[], int n)
{
    for (int i = 0; i < n; i++)
    return;
        reverse_array(ar, n-1);
}
Где логика???
цикл до n
и сразу return; - он выходит вообще с цикла и метода.
То есть цикл закончился так и не начавшись
0
0 / 0 / 0
Регистрация: 24.07.2014
Сообщений: 22
27.08.2014, 20:39  [ТС] 4
Цитата Сообщение от Lynatik001 Посмотреть сообщение
Где логика???
цикл до n
и сразу return; - он выходит вообще с цикла и метода.
То есть цикл закончился так и не начавшись
да уж ерунду написал и даже не заметил ( перегрелся наверное((
0
47 / 39 / 15
Регистрация: 28.09.2012
Сообщений: 818
27.08.2014, 20:41 5
Цитата Сообщение от QzzQ Посмотреть сообщение
да уж ерунду написал и даже не заметил ( перегрелся наверное((
В коде главное логика. Без ее выйдет что попало) Надо продумывать сначало как будет оно работать, и писать логику путем использования методов которые в этом помогут.
1
34 / 34 / 8
Регистрация: 06.04.2014
Сообщений: 189
28.08.2014, 00:45 6
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
#include <iostream>
#include <cstring>
 
using namespace std;
 
void reverse_array(double arr[], size_t size)
{
    double temp;
    for (size_t left = 0, right = size - 1; left != size / 2; ++left, --right)
    {
        temp = arr[left];
        arr[left] = arr[right];
        arr[right] = temp;
    }
}
 
void print_array(double arr[], size_t size)
{
    for (size_t i = 0; i < size; ++i)
        cout << arr[i] << ' ';
    cout << endl;
}
int main()
{
    double arr1[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
    double arr2[9] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
    reverse_array(arr1, 10);
    reverse_array(arr2, 9);
    print_array(arr1, 10);
    print_array(arr2, 9);
    cin.get();
}
Добавлено через 3 часа 43 минуты
Можно ещё так:
C++
1
2
3
4
5
#include <algorithm>
void reverse_array(double arr[], size_t size)
{
    reverce(arr, arr+size);
}
1
28.08.2014, 00:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.08.2014, 00:45
Помогаю со студенческими работами здесь

Изменить порядок элементов в последовательности на противоположный
Размерность массива 100 диапазон от -50 до 50 и вот само задание Во всех последовательностях...

Поменять порядок элементов массива на противоположный
помогите решить задачи .Пожалуйста 1)Обменять порядок елементов масива на противоположный...

Изменить порядок элементов массива X[8] Y[4] на противоположный
Есть код ,но тут для одного массива,а как для двух сделать? #include &quot;stdafx.h&quot; #include...

Поменять порядок следования элементов файла на противоположный
Приветствую всех. Помогите пожалусто срочно с задачкой: Описать процедуру InvertIntFile(Name),...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru