7 Segment 3 Digit Display - removing the leading zero

Hello, I am working at a project and I need the following function to work with common cathode displays.
Please find attached the schematic and the code. I already modified the necessary lines of the code, but when temperature is below 100 degrees, then it shows me the leading zero, and I need to eliminate that zero.
The display is formed by 3 digits with common cathode, with the cathodes driven by NPN transistors.

void show(int value) {
  int digits_array[] = {};
  boolean empty_most_significant = true;
  for (int z = max_digits - 1; z >= 0; z--) //Cycle through each digit
  {
    digits_array[z] = value / pow(10, z); //We now take each digit from the number
    if (digits_array[z] != 0 ) empty_most_significant = false; //Do not display leading zeros
    value = value - digits_array[z] * pow(10, z);
    if (z == current_digit)
    {
      if (!empty_most_significant || z == 0) { //Check to see that we do not have leading zeros and display the current digit
        PORTD = digits[digits_array[z]]; //Remove ~ for common cathode
      }
      else
      {
        PORTD = B11111111;
      }
      digitalWrite(digit_common_pins[z], HIGH);//Change to HIGH for common cathode
    } else {
      digitalWrite(digit_common_pins[z], LOW);//Change to LOW for common cathode
    }

  }
  current_digit--;
  if (current_digit < 0)
  {
    current_digit = max_digits; //Start over
  }
}

Just test to see if the number is less than 100, if not then set 'empty_most_significant' to true.

I am presenting an alternative solution; where, the leading zero is automatically supressed by virtue of the SevSeg.h Libarry.

1. Connection diagram (Fig-1) among LM35 temp sensor , UNO and 3-digit 7SD unit.
cc4dRx.png
Figure-1:

2. The sketch which shows integer part of temperature on the display unit of Fig-1 at 2-sec interval.

#include "SevSeg.h"
SevSeg sevseg;
byte numDigits = 3;
byte digitPins[] = {A0, A1, A2};//DP0, DP1, DP2
byte segmentPins[] = {5, 6, 7, 8, 9, 10, 11, 12};//a, b, c, ..., g, p from left
bool resistorsOnSegments = false;
byte hardwareConfig = COMMON_CATHODE;

void setup()
{
  Serial.begin(9600);
  sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments);
  sevseg.setBrightness(30);
  analogReference(INTERNAL);
}

void loop()
{
  unsigned long prMillis = millis();
  while (millis() - prMillis < 2000)//temp refreshed at 2-sec interval
  {
    sevseg.refreshDisplay();
  }

  float temp = 100 * ( 1.1 / 1023) * analogRead(A4);//31.76
  unsigned int myTemp = (unsigned int)temp; //31
  sevseg.setNumber(myTemp);
}

cc4dRx.png

SevenSegment-master.zip (296 KB)