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

Обращение содержимого массива - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычислить и вывести на экран в виде таблицы значения функции F на интервале от Xнач. до Xкон. с шагом dX. http://www.cyberforum.ru/cpp-beginners/thread297991.html
помогите пожалуйста решить. ваще не щарю в С++. Вычислить и вывести на экран в виде таблицы значения функции F на интервале от Xнач. до Xкон. с шагом dX. -ax – c при c < 0 и x ≠ 0...
C++ Функция STRS написать и протестировать функция STRS(str1;str2), которая определят, встретиться какой либо символ из строки str1.C++ помагите пожалуйста с решением :( Добавлено через 21 час 59 минут... http://www.cyberforum.ru/cpp-beginners/thread297979.html
Посчитать количество слов, начинающихся согласной и заканчивающихся буквой а C++
Здравствуйте, помогите пожалуйста решить задачу, сам уже 2ой день пытаюсь сделать: "посчитать количество слов, начинающихся согласной и заканчивающихся буквой а"
. Имеется текстовый файл. а) Найти длину самой длинной строки б) Найти номер самой длинной строки. Если таких строк несколько, то найти номер C++
. Имеется текстовый файл. а) Найти длину самой длинной строки б) Найти номер самой длинной строки. Если таких строк несколько, то найти номер одной из них. в) Напечатать самую длинную...
C++ Вечные лабы http://www.cyberforum.ru/cpp-beginners/thread297968.html
Help me, please :'( Есть задача. Для последовательности A1 = 1/2, A2= 1/3, An+1 =An + 1/An-1 составить программу печати n-го элемента в виде обыкновенной несократимой дроби. Ума не приложу,...
C++ пересекающиеся прямоугольники В каждой строчке входного файле заданы координаты левого нижнего угла и координаты правого верхнего угла прямоугольника на плоскости (для отделения одних элементов от других может использоваться... подробнее

Показать сообщение отдельно
Selle
0 / 0 / 0
Регистрация: 13.05.2011
Сообщений: 15

Обращение содержимого массива - C++

17.05.2011, 19:56. Просмотров 479. Ответов 4
Метки (Все метки)

ЗАДАЧА:Реализуйте и протестируйте процедуру bool reverse ( float * array, int N), которая осуществляет обращение содержимого массива, т. е первый становится последним элементом, второй предпоследним и т.д. Время выполнения должно быть О(N), выделяемая дополнительная память O(1).

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
76
77
78
79
80
//reverse.h  и swap.hЗаголовочный файл
bool reverse ( float * array, int N);
bool swap ( float * a, float * b);
------------------------------------------------------
//reverse.cpp Описание процедуры в её корректности я не уверена)))
 
#include "reverse.h"
#include "swap.h"
bool reverse (float * array, int N)
{
    float first = * array;
    float last = * (array + N - 1);
    while (first < last)
    {
        mswap(&first, &last);
        first++; last--;
        return true;
    }
 
}
--------------------------------------------------------------------
//mswap.cpp Описание процедуры точно работает
 
#include "swap.h"
bool mswap (float * a, float * b)
{
    int  aold = *a;
    *a = *b;
    *b = aold;
   
    return true;
-------------------------------------------------------
//testreverse.cpp Проверка программы
 
#include <iostream>
#include <vector>
#include "reverse.h"
//init
using namespace std;
 
int main()
{
    cout << "Input number of elenemets in array: ";
    int N;
    cin >> N; cout << endl;
 
/*  float array[N];
 
    for (int i = 1; i <=N; i++)
    {   float s;
        cout << "Input " << i << " element: " ;
        cin >> s;
        array[i] = s;
    }*/
 
    vector <float> array;
    for(int i = 1; i <= N; i++)
    {
        cout << "Input element: ";
        float r;
        cin >> r;
        array.push_back(r);
    }
 
    cout << endl;
 
    cout << "Before reverse: ";
    for (int i = 0; i < N; i++)
        cout << " " << array[i] << " ";
 
    cout << endl; cout << endl;
 
    cout << "After reverse: ";
 
    reverse(&array, N); -> Здесь проблемусечка!
 
//reverse
    for (int i = 0; i < N; i++)
    cout << " " << array[i] << " ";
    return 0;
ОШИБОЧКА

$ make all
g++ -g -c testrev.cpp -o testrev.o
testrev.cpp: In function 'int main()':
testrev.cpp:40: error: cannot convert 'std::vector<float, std::allocator<float>
>*' to 'float*' for argument '1' to 'bool reverse(float*, int)'
make: *** [testrev.o] Error 1

 Комментарий модератора 
Используйте теги форматирования кода!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru