07. Consider the following code segment.
```
int n = 0;
double sum = 0.0;
while ( }n<1000\mathrm{ )
{
int rnd = (int) (Math.random() * 99 + 1);
sum += rnd;
}
double average = sum / n;
System.out.println(average);
```
The program is meant to compute the average of random numbers in the [1..99] range. Is the program code correct, and which of the following describes the program's behavior correctly?
(A) The program computes the average correctly.
(B) The program does not compile due to a syntax error.
(C) The program does not execute correctly due to a division by zero error.
(D) The program does not execute correctly. It is stuck in an infinite loop.
(E) The program computes the average correctly, but the random numbers are wrong.