c++随机数跟求平均值

问题遇到的现象和发生背景

随机数设置了时间种子每次运行出来还是一样
而且求去了平均值后超过了设置的大小

问题相关代码,请勿粘贴截图
//随机数生成函数
int the_rand_create(void)
{  srand((unsigned )(time(NULL)));
    return (rand()%(101));};

//平均成绩计算函数
float average(int score[],int n)
{int i;
int sum=0;
float ave=0;
for(i=0;i<n;i++)
    sum=sum+score[i];
ave=int (sum/n);
return ave;};
int main()
{int i,j,choose,m;
struct student class1[student_number];
 struct student class2[student_number];
 struct student class3[student_number];
 struct student class4[student_number];
 struct student t[(student_number*4)];
//班级一
//对学生学号进行赋值
for(i=0;i<student_number;i++)
    {class1[i].number=01+i;
//对学生成绩随机生成
for(j=0;j<subject_number;j++)
class1[i].score[j]=int (the_rand_create);
//平均成绩计算
class1[i].score_average=average( class1[i].score,subject_number);
}


运行结果及报错内容

img

我的解答思路和尝试过的方法
我想要达到的结果

class1[i].score[j]=the_rand_create();