Как решать задачу?
Собственно отсюда#include <algorithm>
#include <iterator>
#include <iostream>
#include <vector>

using namespace std;

auto fx = [](int x){
  int r = 0;
  switch(x % 3)
  {
    case 0:
      r = x * x;
      break;
    case 1:
      r = x;
      break;
    default:
      r = x / 3;
      break;
  }
  return r;
};

auto calculate = [](const vector<int>& vx, auto fx){
  vector<int> calcValues(vx.size());
  transform(vx.begin(), vx.end(), calcValues.begin(), fx);
  return calcValues;
};

int main()
{
  cout << "Введи кол-во чисел: ";
  int n = 0;
  cin >> n;

  cout << "Введи через пробел " << n << " натуральных чисел:\n" << "$: ";
  vector<int> values(n);
  copy_n(istream_iterator<int>(cin), n, values.begin());

  cout << "Результат твоих расчетов:\n";
  copy_n(calculate(values, fx).begin(), n, ostream_iterator<int>(cout, "\n"));
}
тебе нужна только fx в остальное можешь не погружаться, кроме того что Даны натуральные числа
https://ru.wikipedia.org/wiki/Натуральное_число --> unsigned
У тебя 1е и 2е условие не верны. if(n%3==1) if(n%3==0)