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

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

Войти
Регистрация
Восстановить пароль
 
buGaGashka
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 6
#1

небольшая функция на c++ - C++

23.12.2009, 17:55. Просмотров 452. Ответов 9
Метки нет (Все метки)

Необходимо создать функцию,которая меняет элементы массива по логике первый с последним,второй с предпоследним и т.д. начиная с середины ... тобишь надо начать с эл-та n/2 (n- кол-во эл-ов в массиве) и поменять его на n/2+1(если n-четное число) или на n/2+2 (если n-нечетное число) ... Ошибка в общем такая ... Если вводятся 5 чисел : 70,1,35,68,42 ... то он выводит: -33686019,42,68,35,1 ... А если вводятся 6 чисел: 25,70,1,35,68,42 ... то он выводит: 0,-33686019,42,68,35,1

Код:

Код
void namesta(int *A, int n)
{
	if(n%1)
	{
		int b;
		b=n/2+2;
		for(int i=n/2;i>=0;i--)
		{
			swap(A[i],A[b]);b++;
		}
	}
	else
	{
		int v;
		v=n/2+1;
		for(int i=n/2;i>=0;i--)
		{
			swap(A[i],A[v]);v++;
		}
	}
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2009, 17:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос небольшая функция на c++ (C++):

Небольшая функция, удаляющая однаковые букви в слове - C++
как написать функцию чтобы удаляло однаковые букви в слове? cout << "\n Введите ключовое слово : "; gets_s(kluch);// ...

Небольшая задачка - C++
Доброго времени суток. Я не знал в каком разделе создавать эту тему, так что пишу сюда. Есть небольшая проблема не получается решить...

Небольшая проблемка) - C++
Всем доброго времени суток, у меня возникла проблема с напиванием одной программы задание следующее :"Написать функцию нахождения MAX среди...

Небольшая сложность - C++
Я создал проект, сохранил, попытался открыть, но на месте отладки появилось "присоединить", при нажатии которого выдаёт окошко с кучей...

Небольшая праблемка - C++
Здравствуйте. Есть такая задача: Дана матрица N строк, М столбцов. Вычислить сумму элементов каждой строки до первого отрицательного. ...

Небольшая помощь - C++
Ктото может написать небольшой модуль которий будет считивать какуюта інформацию с файла *тхт каждих 2 сек ?? спс

9
BOR1K
14 / 14 / 4
Регистрация: 19.09.2009
Сообщений: 289
23.12.2009, 17:58 #2
такая же задачка у меня была, так и не додумался как сделать(( и никто здесь не подсказал.
0
TanT
эволюционирую потихоньку
466 / 464 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
23.12.2009, 18:05 #3
Цитата Сообщение от BOR1K Посмотреть сообщение
такая же задачка у меня была, так и не додумался как сделать(( и никто здесь не подсказал.
эт ты зря, такие темы были и не раз и я скидывал кому-то вот это
C++
1
2
3
4
5
6
7
8
9
10
11
void Reverse(int *begin, int *end)
{ 
    int temp;
    while (end>begin)
    {
        temp = *begin;
        *begin = *end;
        *end = temp;
        begin++; end--;
    }
} // end Reverse
1
buGaGashka
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 6
23.12.2009, 18:18  [ТС] #4
TanT, насколько я понял ты мне кинул прогу эту же логику только начиная с начла и конца ... А мне обязательно надо,чтобы начиналось с середины,т.к. такой вариант у меня уже есть ...
0
TanT
эволюционирую потихоньку
466 / 464 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
23.12.2009, 18:37 #5
если правильно понял то так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void namesta(int *A, int n)
{
    if(n%2)
    {
        int b;
        b=n/2;
        for(int i=n/2;--i>0;)
        {
            swap(A[i],A[b]); b++;
        }
    }
    else
    {
        int v;
        v=n/2;
        for(int i=n/2;--i>=0;)
        {
            swap(A[i],A[v]);v++;
        }
    }
}
1
buGaGashka
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 6
23.12.2009, 19:02  [ТС] #6
TanT, в этом варианте для четного количества чисел все работает нормально,а для нечетного неправильно меняет.
0
TanT
эволюционирую потихоньку
466 / 464 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
23.12.2009, 19:06 #7
Цитата Сообщение от buGaGashka Посмотреть сообщение
TanT, в этом варианте для четного количества чисел все работает нормально,а для нечетного неправильно меняет.
пример дай, не совсем понял твои объяснения. по моей логике всё правильно
1
buGaGashka
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 6
23.12.2009, 19:15  [ТС] #8
TanT, если вводить четное количество элементов он правильно переварачивает массив,если мы ввели: 21,61,81,41,29,23,то получим: 23,29,41,81,61,21
а если вводить нечетное количество элементов: 61,81,41,29,23,то почему-то получаем: 61,41,81,29,23 ... хотя должно было получиться 23,29,41,81,61 ... понятно ?
0
TanT
эволюционирую потихоньку
466 / 464 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
23.12.2009, 19:21 #9
строки 6 и 7 моего кода заменить на
C++
1
2
    b=n/2+1;
        for(int i=n/2;--i>=0;)
1
buGaGashka
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 6
23.12.2009, 19:27  [ТС] #10
TanT, Спасибо! Сработало!
0
23.12.2009, 19:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.12.2009, 19:27
Привет! Вот еще темы с ответами:

Совсем небольшая ошибка - C++
Помогите найти небольшую ошибку в проге, вот её код #include<iostream> #include<math.h> using namespace std; float Fact(int n) { ...

Небольшая мелочь по теории - C++
"Какой максимальной длины может быть внешнее имя в программе на С++ в Вашей системе?" - с локальными именами понятно-С++ не накладывает...

Небольшая задачка. простенькая - C++
Ну что же, имеется Файлик с названием HappyEnd.txt Нужно: сисушка спрашивает, открыть ли файлик, если да, то тыкай цифру 1, а если нет...

Небольшая ассемблеровская вставка - C++
Доброго вечера. Данный код создает одномерный массив. int main() { int n=4; int *a = new int ; for(int i=0;i<n;i++){ ...


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

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

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