Do it in small parts so that you don't get overwhelmed. First, write the program and inputs three integers. After you get that working, you can add some more to sum up the three integers as you enter them. After that, so each of the other parts, and soon you will have the program written.
Then you could pass the pointers to each of the functions and use those functions and the pointers in the functions to sum (1 + 2 + 3), average((1 + 2 + 3) / 3), product (1 * 2 * 3), and get smallest and largest using if-else statements in that functions. Basically, the best way to break up any problem, big or small, (as noted above) is one step at a time--and in C++ the best way to do this is through classes or functions and so the best way to solve this problem (in my opinion anyway) is to go ahead and break it up into small pieces which are really simple to understand and write. You don't absolutely have to use pointers, but they are a great way to pass variable values back and forth while using relatively small amounts of memory (which is good). Anyway, that's just what I would do and when you get used to breaking a problem into functions it makes solving more complex problems a lot easier.