为什么后面不执行了?

想做c语言的熵权法
结果后面好像不运行了
代码如下

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <math.h>
#define maxResolutionNumber 128 //最大行数
#define maxFactorNumber 128 //最大列个数
double RI[]={0,0,0.58,0.90,1.12,1.24,1.32,1.41,1.45,1.49};
//不能使用char* Matrix[maxYSNumber][maxYSNumber],否则只能存放字符串地址。
//使用字符串形式保存,需要计算时可以使用atof转换为了float型
typedef char Matrix[maxFactorNumber][maxFactorNumber][128];//三维数组,分别表示矩阵的行,列坐标,和存放的字符串值。
typedef double NormalizedMatrix[maxFactorNumber][maxFactorNumber];//二维数组,表示行列
typedef double weightVector[128];//这里只定义了一个向量,作为过渡使用,直接存入矩阵。
Matrix mCriterionLayer;//准则层次比较矩阵
NormalizedMatrix mmCriterionLayer;
Matrix factors[maxResolutionNumber];//因素比较矩阵集合,最多存放 maxResolutionNumber 个矩阵
NormalizedMatrix nFactors[maxResolutionNumber];
Matrix result;//准则层次比较矩阵
void readMatrix(char * filePath,Matrix m);
void printMatrix(Matrix m,int n1,int n2);
int is_in(char*s, char c);
void normalizeMatrix(Matrix m,NormalizedMatrix nm,int n1,int n2);
void countWeight(NormalizedMatrix nm,double n1,double n2,weightVector returnValue);
void Result(weightVector v,double n1,double n2,weightVector nv);

 //从cvs文件中读取矩阵信息
//读取文件内容到矩阵m
void readMatrix(char * filePath,Matrix m){
    FILE *fp = NULL;
    //fp=fopen();导入文件
    char *line,*record;
    char buffer[1024];
    int x=0,y=0,n=0;

    if ((fp=fopen(filePath,"r")) != NULL){
        char delims[] = ",";
        wchar_t *result = NULL;
        //当没有读取到文件末尾时循环继续
        while (line = fgets(buffer, sizeof(buffer), fp)){
            line[strlen(line)-1]='\0';//去除\r\n,无法通过查找\r或\n来处理,但确实先执行\r,将光标移动到第一个字符钱,然后往下一行。可能vc2010对回车的解释看做一个字符?
            record = strtok(line, ",");
            while (record){
                //考虑到小数点以及结束符,自己使用128,而不要用sizeof。
                memcpy(m[x][y],record,128/*sizeof(record)+3*/);
                record = strtok(NULL, ",");    
                y++;
            }
            y=0;
            x++;
        }
        fclose(fp);
        fp = NULL;
    }
}
//打印矩阵
void printMatrix(Matrix m,int n1,int n2){
    int i,j;
    for(i=0;i<n1;i++){
        for(j=0;j<n2;j++){
            if(is_in(m[i][j],'*')!=-1)
                printf("\t");
            else if(atof(m[i][j])>0&&atof(m[i][j])<10)//为了解决精度显示问题
                printf("%.3f \t",atof(m[i][j]));
            else
                printf("%s \t",m[i][j]);
        }
        puts("");
    }
}
int is_in(char*s, char c){
    int n=0;
    while(*s != '\0'){
        if(*s == c){
            return n;
        }
        else{
            s++;n++;
        }
    }
return -1;
}
//矩阵标准化,标准化之后的结果存入新的矩阵。
void normalizeMatrix(Matrix m,NormalizedMatrix nm,int n1,int n2){//n1是行,n2是列
    int i,j;
    float sum;
    for(j=1;j<n2;j++){
        sum=0;
        for(i=1;i<n1;i++){
            sum+=sqrt(pow(atof(m[i][j]),2));//列增加
        }
        for(i=1;i<n1;i++){
            nm[i-1][j-1]=atof(m[i][j])/sum;
        }
    }
}

void countWeight(NormalizedMatrix nm,double n1,double n2,weightVector returnValue){
    int i,j;
    float sum;
    NormalizedMatrix nnm;
    for(j=1;j<n2;j++){
        sum=0;
        for(i=1;i<n1;i++){
            sum +=nm[i][j];
        }
        for(i=1;i<n1;i++){
            nnm[i-1][j-1]=nm[i][j]/sum;
        }
    }

    for(j=1;j<n2;j++){
        sum=0;
        for(i=1;i<n1;i++){
            sum +=(nnm[i][j]*log(nnm[i][j]));
        }
        returnValue[j]=-sum/log(n1);
    }
}

//将向量值写入结果矩阵。
//col为插入result的第几列,n为weightVector的有效长度


void Result(weightVector v,double n1,double n2,weightVector nv){
    int i,j;
    float sum;
    for(i=1;i<n1;i++){
        sum=0;
        for(j=1;j<n2;j++){
            sum +=(1- v[j]);
        }
        for(j=1;j<n2;j++){
            nv[j]=v[j]/sum;
        }
    }
}

int main(void){
    int i,j;
    double n1,n2;
    char MatrixName[120];
    weightVector wv,vv;
    int factorNum=5,solutionNum=3;
    puts("请输入因素个数:");
    scanf("%d",&factorNum);
    puts("请输入行个数:");
    scanf("%d",&n1);
    puts("请输入列个数:");
    scanf("%d",&n2);
    puts("---------------结果矩阵:----------------");
    readMatrix("./最后计算结果.csv",result);//在标红处输入文件相对路径
    printMatrix(result,n1,n2);
    puts("---------------准则层比较矩阵:----------------");
    readMatrix("./准则层次比较矩阵.csv",mCriterionLayer);//在标红处输入文件相对路径
    printMatrix(mCriterionLayer,n1,n2);

    
    puts("---------------因素判断矩阵:----------------");
    for( i=0;i<factorNum;i++){
        printf("请输入矩阵cvs相对路径:");
        scanf("%s",MatrixName);
        readMatrix( MatrixName ,factors[i]);
        printMatrix(factors[0],n1+1,n2+1);
        puts("");
    }
    normalizeMatrix(mCriterionLayer,mmCriterionLayer,n1+1,n2+2);
    //printMatrix(mCriterionLayer,6);
    //计算准则层权重
    countWeight(mmCriterionLayer,n1,n2,wv);
    Result(wv,n1,n1,vv);
    //计算判断因素的权重
    j=1;
    while(j<n2){
        printf("第%d列的权重为:%f",j,vv[j]);
        j++;
    }
    printf("测试成功!");
    return 0;
}


然后大概是这块代码不执行

j=1;
    while(j<n2){
        printf("第%d列的权重为:%f",j,vv[j]);
        j++;
    }
    printf("测试成功!");

大家可以帮我看看吗

请具体是 ‘后面’ 是在哪里。