This kind of thing easily handles 1, 2, 3... 44, 45, 46, 47, 48... feedings a day.
void loop()
{
unsigned long interval = (24UL * 60UL * 60UL * 1000UL) / FeedingsPerDay;
static unsigned long lastFeedingTime;
unsigned long currentTime = millis();
if (currentTime - lastFeedingTime >= interval)
{
// Time for a feeding!
// NOTE: This would normally be "lastFeedingTime += interval;" which works best when the
// interval is fixed. In this case if you were three hours into a long interval and change the feeding
// rate to 24 per day (one per hour) the feeder would feed three times immediately. I think it is
// safer to feed once now and again in an hour.
lastFeedingTime = currentTime;
}
}