Modifying the Properties of Values within an Array

I would seem to make sense to me to reorganize your segment orders to something like:

/*
a = Top Horizontal
 b = Top-Right
 c = Bottom-Right
 d = Bottom Horizontal
 e = Bottom-Left
 f = Top-Left
 g = Middle Horizontal
 dp = Decimal Point
 */
#define SEGMENTOFFSET 10   // The lowest pin reference for a display segment

int digitalDisplay[] = {10, 11, 12, 13, 14, 15, 16, 17};
int cathode[] = { 0, 1, 2, 3 };

which would allow you to do something like:

void setup()
{
   int i;

   for (j = 0; j <  sizeof(cathode) / sizeof(cathode[0]); j++) {
      // whatever you want to do with each segment...
      for (i = 0, j = 0; i < sizeof(digitalDisplay) / sizeof(digitalDisplay[0]); i++) {
         pintMode(i + SEGMENTOFFSET, OUTPUT)
         digitalWrite(i + SEGMENTOFFSET, LOW);
      }
   }
}

This would require you to reorder your arrays, but I think you get the idea.