Как я могу прочитать числа из файла, а затем записать их в два файла в порядке возрастания, по одному за раз, в один файл, затем во второй?

#c #visual-c

Вопрос:

Например:

В первом файле есть эти номера: 10 1 5 -3 -9 -12 34 0 2 -52

Второй файл: -52 -9 0 2 10

Третий файл: -12 -3 1 5 34 Мой код:

 #include lt;fstreamgt; #include lt;iostreamgt; #include lt;ctimegt; #include lt;algorithmgt; using namespace std; void main() {  srand(time(NULL));  int n = 10;  int *a = new int[n];  ifstream f("numbers.txt");  ofstream g("AscNum1.txt");  ofstream h("AscNum2.txt");  while (f.is_open()) {  for (int i = 0; i lt; n; i  ) {  f gt;gt; a[i]; //reading numbers from file  }  sort(a, a   n);  for (int i = 0; i lt; n; i  ) {  if (i % 2 == 0) {  g lt;lt; a[i] lt;lt; ' ';//writing number if its index is even  }  else  h lt;lt; a[i] lt;lt; ' '; //writing number if its index is not even  }   h.close();  g.close();  f.close();  }   }  

В этом коде я сортирую перед «передачей» и «передачей» по четному индексу(второй файл содержит числа с четными индексами).

Как я могу «перенести» без использования сортировки? Как я могу сделать это по-другому?

Комментарии:

1. Прежде всего, нет необходимости a ни в указателе, ни в динамическом выделении. Во-вторых, нет необходимости и во внешнем while цикле, if вместо этого используйте обычный.

2. Помимо пунктов, о которых я упоминал выше, почему вы думаете, что вам нужно сделать это по-другому? Или решить ее без сортировки? В чем на самом деле проблема с вашей программой?

3. @Someprogrammerdude Я думаю, что распределение чисел по индексам довольно примитивно

4. Можете ли вы рассказать мне о различиях между, например int n = 10; int* a = new[n]; , и constexpr size_t n = 10; int a[n]; (или даже простым int a[10]; )? Кроме того, с первым проще иметь проблемы с указателем (например, утечки памяти и т. Д.). Если вы действительно хотите использовать «динамический массив» std::vector вместо этого (в этом случае вам не нужно n будет очищать код), в противном случае используйте std::array (в этом случае вам тоже не нужно n ).