I modified your sketch so it would compile:
const byte LED = 13;
long Iavg=0, Vavg=0;
void setup ()
{
pinMode (LED, OUTPUT);
}
unsigned int analogRead100 (byte reg)
{
unsigned long analog = 0;
for (byte ai = 0; ai < 100; ai++)
{
analog += analogRead (reg);
}
analog /= 100l;
return analog;
}
void loop ()
{
Iavg += analogRead100 (A0);
Vavg += analogRead100 (A1);
digitalWrite (LED, ! digitalRead (LED));
}
Pin 13 toggled every 22.48 mS. Since it took 200 samples in that time then each one took 22.48 / 200 = 112.4 µS.
Working in mS, therefore you would get:
5000 / 0.1124 = 44484
44484 samples per 5 seconds. I predicted above that the analog reads alone should give you:
9615 * 5 = 48075
So you are 3591 samples short of the target, but in that loop you are doing 200 x "long" division, so that would take time.
So on the whole I would say it is working to spec.