Информация об изменениях

Сообщение +- для массива в зависимости от условия от 07.05.2024 12:52

Изменено 14.05.2024 18:15 VladD2

+- для массива в зависимости от условия
Просто интересно.
Есть массив целых и есть некое число. Если число больше 0, надо пройти по массиву и сделать вычитание, если меньше то добавление по единичке пока число не станет равно нулю.
Можно ли

  текущий код
int num;
var arr = new int[] { ... };
int ind = 0;

if (num > 0)
{
  while (num > 0)
  {
    arr[ind]--;
    ind++;
    num--;
  }
}

if (num < 0)
{
  while (num < 0)
  {
    arr[ind]++;
    ind++;
    num++;
  }
}



переделать в вид чтобы был один цикл и для + и для —

void main()
{
if (num > 0)
{
Correct(arr, num, operator+);
}
if (num < 0)
{
Correct(arr, num, operator+);
}
}

void Correct(int[] list, int num, operator)
{
while (num != 0)
{
arr[ind] operator;
ind++;
num operator;
}
}
+- для массива в зависимости от условия
Просто интересно.
Есть массив целых и есть некое число. Если число больше 0, надо пройти по массиву и сделать вычитание, если меньше то добавление по единичке пока число не станет равно нулю.
Можно ли

  текущий код
int num;
var arr = new int[] { ... };
int ind = 0;

if (num > 0)
{
  while (num > 0)
  {
    arr[ind]--;
    ind++;
    num--;
  }
}

if (num < 0)
{
  while (num < 0)
  {
    arr[ind]++;
    ind++;
    num++;
  }
}



переделать в вид чтобы был один цикл и для + и для —

void main()
{
    if (num > 0)
    {
       Correct(arr, num, operator+);
    }
    if (num < 0)
    {
       Correct(arr, num, operator+);
    }    
}

void Correct(int[] list, int num, operator)
{
  while (num != 0)
  {
    arr[ind] operator;
    ind++;
    num operator;
  }
}