у меня есть 2 массивов, параллельно:Перегруппировка массива относительно другого массива
defenders = {1,5,7,9,12,18};
attackers = {3,10,14,15,17,18};
Оба сортируют, что я пытаюсь сделать, это изменить значение защищающихся буев так, что они выигрывают больше игр (защитник [i]> атакующий [i]), но у меня возникают проблемы с тем, как поменять значения в массиве защитников. Таким образом, в действительности мы работаем только с массивом защитников по отношению к атакующим.
У меня есть это, но если что-то не сильно меняется, и я уверен, что я не делаю это правильно. Предположим, что это метод грубой силы.
void rearrange(int* attackers, int* defenders, int size){
int i, c, j;
int temp;
for(i = 0; i<size; i++){
c = 0;
j = 0;
if(defenders[c]<attackers[j]){
temp = defenders[c+1];
defenders[c+1] = defenders[c];
defenders[c] = temp;
c++;
j++;
}
else
c++;
j++;
}
}
Edit: я задаю этот вопрос раньше, но я чувствую, как будто я сформулированный его ужасно, и не знал, как «поднять» старую должность.
Вы инициализации '' c' и j' в начале каждого цикла. Это нормально? – MikeCAT
Примечание: будьте осторожны, чтобы не выходить из-за пределов доступа. – MikeCAT
@MikeCAT Я делал это так, чтобы c и j не стали огромными числами. У меня также было утверждение if, чтобы ограничить c + 1, но это не сильно повлияло. – Jude