Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2013, 21:27   #1
Sanya5369
 
Регистрация: 02.10.2013
Сообщений: 8
По умолчанию ведите одномерный статический массив из (К) чисел. Расположите элементы массива в обратном порядке.

Ребята как переделать программу:

Введите одномерный статический массив из (К) чисел. Расположите элементы массива в обратном порядке.

Начало есть вот как сам код написать перебрал много вариантов от функции (temp и swar) вот не могу понятm в какой лучше помогите пожалуйста!!!



и в начале там где "void swap" что в скобка писать??


Начало программы:

Код:
#include <iostream.h>
#include <iomanip.h>
#include <math.h>

void swap(int *a, int *b);

int main()

 int a[], i, n; 
 cout « "Vvedite razmer massiva: "; 
 cin » n;
 cout « "\nVvedite massiv:\n";
 for (i=0; i<n; i++) 
 {
 cout « "Vvedite a[" « i « "]= " ;
 cin » a[i];
 }
 cout « "\nMassiv a:\n"; 
 for (i=0; i<n; i++)
 cout « setw(7) « a[i];
 cout « endl;

Последний раз редактировалось ACE Valery; 05.10.2013 в 22:15.
Sanya5369 вне форума Ответить с цитированием
Старый 05.10.2013, 23:10   #2
Igor95
Форумчанин
 
Регистрация: 03.01.2013
Сообщений: 388
По умолчанию

Верно, нужна функция swap(int, int).
А вообще лучше написать функцию reverse(int*), которая реверсировала бы массив. Это улучшит читаемость кода, локализует отлов ошибки + сдлает main() компактнее.
Алгоритм такой: меняете элементы массива - конечный и первый, далее предпоследний и второй и т.д.
Учтите, что кол-во элементов может быть нечетным/четным.

Последний раз редактировалось Igor95; 05.10.2013 в 23:12.
Igor95 вне форума Ответить с цитированием
Старый 06.10.2013, 21:24   #3
Sanya5369
 
Регистрация: 02.10.2013
Сообщений: 8
По умолчанию

вот что то я намудрил и напутал наверника помогите исправить ошибки а то не пойму

Код:
#include <iostream.h>
#include <iomanip.h>
#include <math.h>

      
void swap(int *a, int *b);

int main()
{
   int a[10], i, n;  
   cout << "Vvedite razmer massiva: ";    	 					
   cin >> n;
   cout << "\nVvedite  massiv:\n";
   for (i=0; i<n; i++) 
     	{
     	  cout << "Vvedite a[" << i << "]= " ;
	      cin >> a[i];
  	   }
   cout << "\nMassiv a:\n";    					 
   for (i=0; i<n; i++)
		cout << setw(7) << a[i];
   cout << endl;


   int swap(int a, int b);      
cout<<"\n a="<<a<<setw(10)<<"i="<<a;

return 0;
}


void swap(int *a, int *b)
{
	int temp = *a;
	*a = *b;
	*b = temp;
}

Последний раз редактировалось Stilet; 06.10.2013 в 23:30.
Sanya5369 вне форума Ответить с цитированием
Старый 06.10.2013, 22:14   #4
Igor95
Форумчанин
 
Регистрация: 03.01.2013
Сообщений: 388
По умолчанию

Во-первых, вы поменяли местами всего два элемента.
Во-вторых, где у вас объявлена переменная, которую вы передаете в функцию swap в качестве второго параметра?
Код:
int swap(int a, int b);
Почему в main() объявляете функцию.

Почитайте книгу Кернигана и Ритчи.
Igor95 вне форума Ответить с цитированием
Старый 06.10.2013, 22:51   #5
Кащей
Форумчанин
 
Аватар для Кащей
 
Регистрация: 09.07.2013
Сообщений: 249
По умолчанию

К чёрту swap, на пример
Код:
void rotate(int* mass, int size){
	int i, mass_v = 0;
		for(i = 0; i < size / 2; i++){
			mass_v = mass[i];
			mass[i] = mass[size - 1 - i];
			mass[size - 1 - i] = mass_v;
		}
}
do not use your brain
Кащей вне форума Ответить с цитированием
Старый 06.10.2013, 22:58   #6
Sanya5369
 
Регистрация: 02.10.2013
Сообщений: 8
По умолчанию

если честно просто учитель сказал всегда делать через это!
а я не очень то понимаю это вот как примеры решить и записать так могу а вот массивы эт что то новое для меня. читаю методичку говорит одной её хватит а там только 2 предложения о массиве(

Плиз исправь ошибки
Sanya5369 вне форума Ответить с цитированием
Старый 06.10.2013, 23:03   #7
Кащей
Форумчанин
 
Аватар для Кащей
 
Регистрация: 09.07.2013
Сообщений: 249
По умолчанию

Цитата:
2 предложения о массиве
Перечитывай их пока не запомниш.
Цитата:
Сообщение от Sanya5369 Посмотреть сообщение
Плиз исправь ошибки
Не исправлю, я с срр не дружу.
do not use your brain
Кащей вне форума Ответить с цитированием
Старый 06.10.2013, 23:08   #8
Sanya5369
 
Регистрация: 02.10.2013
Сообщений: 8
По умолчанию

вот что у меня написано и говорит что с этим можно написать...


"
Массив – это набор данных одинакового типа, расположенных в непре-рывной области памяти таким образом, чтобы по индексу элемента можно было
вычислить адрес его значения: адрес(a[i]) = адрес(a[0]) + i*k,
где k – количество байт, отводимых под элемент массива;
i – индекс элемента массива.
Для доступа к элементу массива необходимо указать его имя и индекс (по-рядковый номер элемента в масиве):
имя_массива [индекс]
В программе одномерный массив объявляется следующим образом:
тип имя_массива [размер];
"

И еще вот тот код который вы написали это перемена массива всего??? или только части?

Последний раз редактировалось Stilet; 06.10.2013 в 23:30.
Sanya5369 вне форума Ответить с цитированием
Старый 06.10.2013, 23:12   #9
Кащей
Форумчанин
 
Аватар для Кащей
 
Регистрация: 09.07.2013
Сообщений: 249
По умолчанию

Цитата:
Сообщение от Sanya5369 Посмотреть сообщение
вот что у меня написано и говорит что с этим можно написать...


"
Массив – это набор данных одинакового типа, расположенных в непре-рывной области памяти таким образом, чтобы по индексу элемента можно было
вычислить адрес его значения: адрес(a[i]) = адрес(a[0]) + i*k,
где k – количество байт, отводимых под элемент массива;
i – индекс элемента массива.
Для доступа к элементу массива необходимо указать его имя и индекс (по-рядковый номер элемента в масиве):
имя_массива [индекс]
В программе одномерный массив объявляется следующим образом:
тип имя_массива [размер];
"
Ну вот, запоминай. Увидел непонятное слово - в гугль и его запоминай. Если всю терминологию тут расшифровывать то твои два предложения превратятся в книжечку, котрую надо запомнить чтобы понимать о чём тут пишется.
Цитата:
И еще вот тот код который вы написали это перемена массива всего??? или только части?
Эта функция развернёт весь массив.
do not use your brain

Последний раз редактировалось Кащей; 06.10.2013 в 23:17.
Кащей вне форума Ответить с цитированием
Старый 06.10.2013, 23:15   #10
Sanya5369
 
Регистрация: 02.10.2013
Сообщений: 8
По умолчанию

о боже.....!!!
еслиб было время запоминать!
и так погорло дел мнеб что-нибудь простельное и малое что бы сразу в точку в небольшом объеме, а то смотрю в интернете уроки вроде все понятно особенно выведение мак и мин.
Sanya5369 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Элементы массива X расположить в обратном порядке ( Delphi ) alex150394 Помощь студентам 5 19.12.2012 10:19
Как переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами? xEk Помощь студентам 1 09.05.2012 21:20
Переставить элементы массива в обратном порядке Mayers Общие вопросы C/C++ 3 06.05.2012 12:15
ВЫвести элементы массива в обратном порядке Кристина Н Паскаль, Turbo Pascal, PascalABC.NET 1 01.12.2011 08:25
Поместить элементы Одного массива, в начало другого в обратном порядке. Adrenalin4 Общие вопросы C/C++ 2 15.11.2010 21:51