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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2014, 18:03   #1
2107
 
Регистрация: 26.01.2014
Сообщений: 7
По умолчанию Вывод элементов массива в определенном порядке

Добрый день!

Посмотрите, пожалуйста задачу:

Дан массив A размера N. Вывести его элементы в следующем порядке:
A 1 , A 2 , A N , A N−1 , A 3 , A 4 , A N−2 , A N−3 ,

Работает почти правильно. Например при числах: "1 2 3 4 5 6 7 8 9 10 11" программа выведет "1 2 11 10 3 4 9 8 5 6 7 6 6", а должна остановиться на 7.

Код:
Код:
  #include <windows.h>
  #include <iostream>
  #include <fstream>  
  using namespace std;

  const int N_MAX=1000;         // Максимальный размер массива

int input_array (double A[], int imax, char *name)
{
    ifstream infile (name);  
    int i=0;                    // Счетчик

    while ( (i<imax) && (infile >> A[i]) ) ++i;
    infile.close();
    return i;
}

void show_array (double A[], int N)
{
     for (int i=0; i<N; i++)  cout << A[i] << " ";
     cout << endl;
}

int main ()
{ 
     SetConsoleCP(1251);
     SetConsoleOutputCP(1251);

     double A[N_MAX];              // Для хранения данных
     int N;                        // Реальный размер массива
     char name[]="FILE.txt";     

     N=input_array (A, N_MAX, name);
     show_array (A,N);
  
     cout << "Элементы в заданном порядке:"<< endl;
 
     for(int i = 0, j = N-1; i < N/2; i++, j--)
     {
     	
     	 if (j!=i) 
         {
             cout << A[i] << " ";
             i++;
             cout << A[i] << " ";
		 }
		 
         if (j!=i) 
         {
		     cout << A[j] << " ";
             j--;
             cout << A[j] << " ";
		 }
     }

     if (N % 2 != 0)
     {
         cout << A[N/2];
     }
  
     cout << endl;
     system("pause");
     return 0;
}

Последний раз редактировалось Stilet; 04.06.2014 в 09:47.
2107 вне форума Ответить с цитированием
Старый 03.06.2014, 23:25   #2
2107
 
Регистрация: 26.01.2014
Сообщений: 7
По умолчанию

Совсем никто не знает? Вопрос еще актуален...
2107 вне форума Ответить с цитированием
Старый 04.06.2014, 09:55   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

В качестве примера могу предложить такой алгоритм:
Код:
	const int n=11;
	int a[n]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
	int i;
	for(i=0;i<n/2;i+=2){
		printf("%d\t%d\t%d\t%d\t",a[i],a[i+1],a[n-i-1],a[n-i-2]);
	}
	getchar();
	return 0;
Идея понятна?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Расположе элементов строки массива в порядке возрастания londoncold Помощь студентам 1 21.12.2011 21:04
Вывод элементов матрицы в определенном порядке Dayterius Паскаль, Turbo Pascal, PascalABC.NET 1 20.05.2009 12:13
вывод матрицы на печать в определенном порядке Annet555 Помощь студентам 3 29.03.2009 00:16
Расположить элементы массива в порядке убывания частоты встречаемости элементов. QWERT12345 Паскаль, Turbo Pascal, PascalABC.NET 7 14.11.2008 22:30