Консультация № 144335
18.09.2008, 20:05
0.00 руб.
0 1 1
Здравствуйте! Напишите пожалуйста программу на языке С++, которая переворачивает масив,
т.е. вводим 1, 2, 3, 4, а получаем 4, 3, 2, 1, очень прошу.
На входе ввод значения размерности и после этого ввод эл.вручную или с помощью rand().
Раньше я писал такую программу, но без использования указателей.
Напишите пожалуйста с использованием указателей, теорию указателей я знаю неплохо, просто не знаю
с чего начать. Спасибо.

Обсуждение

Неизвестный
18.09.2008, 21:23
общий
это ответ
Здравствуйте, алексей_!

Код С++ программы с комментариями в приложении. Будут вопросы по коду - задавайте в мини-форум вопроса.

Приложение:
//Заголовок потокового ввода/вывода
#include <iostream>
//Заголовок манипуляторов ввода/вывода
#include <iomanip>

using namespace std;

int main()
{
//Объявляем массив целых чисел на 10 элементов;
int mas[10];
//Объявляем переменную размерности
int size = 0;

//Приглашение ввести значение размерности
cout << "Vvedyte razmernost' masyva: ";

//Ввод значения размерности
cin >> size;

cout << endl;

cout << " Zapolnit' masyv: \n"
<< " ---------------- \n"
<< " Vruchnuyu - 1 \n"
<< " Avtomatychesky - 2 \n"
<< " : ";

//Объявляем переменную выбора
int sw;

//Вводим значение выбора
cin >> sw;

cout << endl;

//Оператор "switch"
switch(sw)
{
//Если значение переменной выбора 1, то вводим элементы массива вручную
case 1: for(int i = 0; i < size; i++)
{
cout << " el.of mas[" << i << "]: ";

cin >> mas[i];
}

break;

//Если значение переменной выбора 2, то заполнение массива будет автоматическим
case 2: for(int i = 0; i < size; i++)
{
mas[i] = rand() % 100 - 50;
}

break;
}

cout << endl << " Nachalnuy masyv: " << endl << endl;

//Вывод массива на экран
for(int i = 0; i < size; i++)
{
cout << " " << mas[i] << setw(3);
}

cout << endl << endl;

cout << " Massyv naoborot: " << endl << endl;
{
//Объявляем указатели
int *start, *end;

//Присваиваем указателю "start" адрес начала массива
start = mas;
//Присваиваем указателю "end" адрес конца массива
end = &mas[size - 1];

//Пока "start" < "end" - меняем элементы местами
while(start < end)
{
int bf = *start;
*start = *end;
*end = bf;

start++;
end--;
}
}

//Выводим массив на экран
for(int i = 0; i < size; i++)
{
cout << " " << mas[i] << setw(3);
}

cout << endl << endl;

return 0;
}
Форма ответа