我的c++为什么什么都不显示?

编了一段选举簇头节点的算法,结果什么都不能显示。哪里出问题了?
代码如下:
#include
using namespace std;

#include
#include

struct node
{

float nnum; //节点值
int m; //标记,为1时表示节点当选过簇头

}node[100];

int main()
{
int n=100,p=0.05; //节点总数100个,期望的簇头数量与网络总节点比例为0.05
int r=1,j=1,i=1; //初始化当前轮数为第一轮,
float Tn; //定义阈值Tn
图片说明int Fnode; //簇头节点序号

for(r=1;r<n*p;r++)           //从第一轮开始
{
    for(i=1;i<n;i++)      //在每轮的开始,给100个节点赋0~1之间随机数值
    {

                    #define N 999            //三位小数。
                    srand(time(NULL));      //设置随机数种子,使每次获取的随机序列不同。

                    node[i].nnum = rand()%(N+1)/(float)(N+1);     //生成0-1间的随机数。


     Tn=p/(1-p*(r % (1/p))); //计算每轮的阈值

        if (node[i].nnum < Tn && node[i].m==0)   //将未当选过簇头的节点与阈值比较,若小于阈值

                Fnode=j;                 //将节点序号,赋值给簇头节点序号
                        node[i].m=1;            //置m为1,表示此节点当选过节点




    }
cout<<"期望值   p="<<p<<endl;
cout<<"当前轮数 r="<<r<<endl;
cout<<"当前阈值 Tn="<<Tn<<endl;
cout<<"当选簇首 Fnode="<<Fnode<<endl;

}

return 0;

}

 struct node 
{

    float nnum; //节点值
    int m; //标记,为1时表示节点当选过簇头

}node[100];

int main()
{
    int n=100;
    **float p=0.05;** //节点总数100个,期望的簇头数量与网络总节点比例为0.05
    int r=1,j=1,i=1; //初始化当前轮数为第一轮,
    float Tn = 0; //定义阈值Tn

    int Fnode = 0; //簇头节点序号
    for(r=1;r<n*p;r++)           //从第一轮开始
    {
        for(i=1;i<n;i++)      //在每轮的开始,给100个节点赋0~1之间随机数值
        {

            #define N 999            //三位小数。
            srand(time(NULL));      //设置随机数种子,使每次获取的随机序列不同。

            node[i].nnum = rand()%(N+1)/(float)(N+1);     //生成0-1间的随机数。


            Tn= p/(1-p * (r % (int)(1/p))); //计算每轮的阈值

            if (node[i].nnum < Tn && node[i].m==0)   //将未当选过簇头的节点与阈值比较,若小于阈值

                Fnode=j;                 //将节点序号,赋值给簇头节点序号
            node[i].m=1;            //置m为1,表示此节点当选过节点




        }
        cout<<"期望值   p="<<p<<endl;
        cout<<"当前轮数 r="<<r<<endl;
        cout<<"当前阈值 Tn="<<Tn<<endl;
        cout<<"当选簇首 Fnode="<<Fnode<<endl;

    }
    return 0;

}