Trying to divide two numbers but I get nothing but zeros on Serial Monitor

I have written a sketch that uses PWM to slowly brighten and then dim 3 leds. I am trying to use the serial monitor to display the current duty cycle. When I use the divide operator all I get is zero's. I can use the add, subtract or multiply operators and get correct results. I have no idea what I am doing wrong.

int d = 250;
int value = 1;
int arraymode[] = {9, 10, 11};
int i;
int divider = 256;

void setup()
{
  for (i = 0; i < 4; i ++)pinMode(arraymode[i], OUTPUT);
  
   
   
  Serial.begin(9600);
}

void loop()
{
  lowhigh();
  highlow();
}
  
  void lowhigh()
  {
     
  while(value < 256)
  {
    for(i = 0; i < 4; i++)analogWrite(arraymode[i], value);
   
  value = value +  5;
  delay(d);
  int number = value / divider;
  Serial.print("duty cycle: ");
  Serial.println(number);
  
}
  }
  
  void highlow()
  {
     
    while (value > 1)
    {
      for(i = 0; i < 4; i++)analogWrite(arraymode[i], value);
      
      value = value - 5;
      delay(d);
      int number = value / divider;
      Serial.print("duty cycle: ");
      Serial.println( number);
       
    }
  }

You have an overflow in your for loop. arraymode has 3 items in it, 0 - 2 and i is going 0 - 3 :

for (i = 0; i < 4; i ++)pinMode(arraymode[i], OUTPUT);

Also your division is the wrong way around (either that or you don't want an integer). First run through value/divider would be 6/256 which equals 0.0234375 or as an integer is 0. (If you wanted 0.0234375 use floats.)

What are you expecting? You number will always be less than 1 and ints can't hold floating point numbers.

Thank you so much! The float did the trick.