I have been trying to finish this code (function) for a while now, but am stuck on the last part. In this code, I prompt the user to select a number of integers and any number of digits and then find the smallest and largest value within these digits. On the next part, I am supposed to determine which of the given digits the smallest and largest are located such that the output should be:

Digit _ can be found in integer number(s): _, _

I apologize in advance if my code is sloppy; I just started learning C++ and haven't fully grasped the language yet.

Here is what I have tried:

Code:
int digitSizeLoca() {

  int userNumInteger;
  int* iPtr;
  int* iPtr2;
  int* iPtr3;
  int value;
  int value2;
  int value3;

  std::cout << "\nHow many integers? ";
  std::cin >> userNumInteger;

  iPtr = new int[userNumInteger];
  iPtr2 = new int[userNumInteger];
  iPtr3 = new int[userNumInteger];

  for (int i = 0; i < userNumInteger; i++) {

	*(iPtr3 + 1) = *(iPtr2 + 1) = *(iPtr + 1);

	std::cout << "\nEnter digit #" << i + 1 << ": ";
	std::cin >> *(iPtr + 1); 
  }

  value = *(iPtr + 1);
  value2 = *(iPtr2 + 1);
  value3 = *(iPtr3 + 1);

  if (value != 0, value2 != 0, value3 != 0) {

    if (value <= 0) 
      value = -value;
	if (value2 <= 0)
	  value2 = -value2;
	if (value3 <= 0)
	  value3 = -value3;

	int lDigit;
    int sDigit;
    int curDigit;
    int pot = 10; 

    lDigit = sDigit =  value % pot;

	while (value, value2, value3) {

      if (value / pot == 0, value2 / pot == 0, value3 / pot == 0) break; 

      curDigit = (value / pot, value2 / pot, value3 / pot) % 10;
          
      if (curDigit < sDigit) 
		sDigit = curDigit;
	   
	  if (curDigit > lDigit)
	    lDigit = curDigit; 
    
      pot*=10;
	}

	std::cout << "\nThe smallest digit: " << sDigit << std::endl
	  << "\n  Digit " << sDigit
	  << " can be found in integer number(s): ";

	for (int i = 0; i < userNumInteger; i++) {

	  int temp;

	  if (value < 0, value2 < 0, value3 < 0)
		temp = -value, temp = -value2, temp = -value3;
	  else
		temp = value, temp = value2, temp = value3;

	  do {
		if (temp % 10 == sDigit) {
		  std::cout << " " << i+1;
		  temp = 0;

		  if (i != 0 && i < userNumInteger - 1 || i != 1 && i < userNumInteger - 1)
			std::cout << ",";
		}
		temp /= 10;
	  } while(temp);
	}
	
    std::cout << "\nThe largest digit: " << lDigit << std::endl
	  << "\n  Digit " << lDigit
      << " can be found in integer number(s): ";

  }

  return 0;
}
Where:

Code:
for (int i = 0; i < userNumInteger; i++) {

	  int temp;

	  if (value < 0, value2 < 0, value3 < 0)
		temp = -value, temp = -value2, temp = -value3;
	  else
		temp = value, temp = value2, temp = value3;

	  do {
		if (temp % 10 == sDigit) {
		  std::cout << " " << i+1;
		  temp = 0;

		  if (i != 0 && i < userNumInteger - 1 || i != 1 && i < userNumInteger - 1)
			std::cout << ",";
		}
		temp /= 10;
	  } while(temp);
	}
Seems to do the job, but it always outputs 1, 2...

Any form of advice is greatly appreciated!