Member 12674320 Ответов: 1

Переупорядочьте массив в соответствии с массивом местоположений


Дан массив целых чисел и массив, который имеет расположение этих целых чисел. Как мне переставить числа, чтобы они соответствовали помещенным данным в новом порядке

я.е:

массив 1,2,4

расположение массива 1,2,0

данные в третьем месте должны быть перемещены в первое место (4)
данные в первом месте должны быть перемещены во второе (1)
данные во втором месте должны быть перемещены в третье место (2)

Что я уже пробовал:

#include <iostream>
using namespace std;



// assign the array to have a maximum of 3 integer values 
const int MAX = 3;
 
int main ()
{
   
   // the elements in the array (the three elements allowed) 
   int  var[MAX] = {10, 100, 200};
   
   // declares ptr as an array of MAX integer pointers
   // each element in ptr, now holds a pointer to an int value
   int *ptr[MAX];
 
   // for loop increments until it hits the amount of elements in the array 
   // in this case it will loop three times starting at the 0 index and ending at 2 index (3 elements)
   // three integers which will be stored in an array of pointers 
   for (int i = 0; i < MAX; i++)
   {
      // assign the address of integer. 
      ptr[i] = &var[i]; 
   }
   
   // prints out the elements location, i, as well as its value *ptr
   for (int i = 0; i < MAX; i++)
   {
      cout << "Value of var[" << i << "] = ";
      cout << *ptr[i] << endl;
   }
   return 0;
}

1 Ответов

Рейтинг:
9

Patrice T

Попробовать это:

#include <iostream>
using namespace std;
 
// assign the array to have a maximum of 3 integer values 
const int MAX = 3;
 
int main ()
{
   // the elements in the array (the three elements allowed) 
   int  var[MAX] = {10, 100, 200};
   // position array
   int  pos[MAX] = {1, 2, 0};
   // destination array
   int  dest[MAX];
   for (int i = 0; i < MAX; i++)
   {
      dest[pos[i]] = var[i]; 
   }
   
   // prints out the elements location, i, as well as its value *ptr
   for (int i = 0; i < MAX; i++)
   {
      cout << "Value of dest[" << i << "] = ";
      cout << dest[i] << endl;
   }
   return 0;
}</iostream>


Member 12674320

Спасибо!!!! В этом так много смысла

Member 12674320

Спасибо!!!! В этом так много смысла

Patrice T

Если решение было полезным, вы можете принять его, это также говорит всем, что вопрос закрыт/решен.
Воспользуйся Принять ответ чтобы закрыть вопрос.