628ですが一部抜粋

#include <iostream>
#include <cstdlib>

double uniformed_rand(void)
{
return (rand()+1.0)/RAND_MAX;
}

int main(void){
int n=100;
double r=1.0;
double x,y,z;

for(n=0;n<100;n++)
{
x=(uniformed_rand()*2-1)*r;
y=(uniformed_rand()*2-1)*r;
z=(uniformed_rand()*2-1)*r;
if(x*x+y*y+z*z<r*r) n++;
std::cout << x << " " << y << " " << z<< std::endl;
}

return 0;
}

これで100個のデータが出て欲しいんですが69個しかでてきません
原因はどこにあるんでしょうか?