C语言循环过多无法正常运行

C语言循环嵌套数量过大
能否让它正常循行

#include<stdio.h>
#include<math.h>
double x[942][1412]={0};
double score[942][1412];
int top[942][1412];
double list[942][1412];
int result[926][11]={0};
double sim[942][942];
double product(double a[],double b[],int n){
    double result=0;
    for(int i=0;i<n;i++){
        result+=a[i]*b[i];
    }
    return result;
}
double length(double a[],int n){
    double result=0;
    for(int i=0;i<n;i++){
        result+=a[i]*a[i];
    }
    return sqrt(result);
}
double similar(double a[],double b[],int n){
    return 1.0*product(a,b,n)/(length(a,n)*length(b,n));
}
int main(){
    
    int i,j,m,n,c;
    
    int t,k,q=0;
    FILE *p=fopen("training.txt","r");
    while(fscanf(p,"%d %d %d",&i,&j,&c)!=EOF){
        x[i-1][j-1]=1;
    }
    fclose(p);//将数据转化为二维数组存储 
    for(i=0;i<942;i++){
        for(j=0;j<942;j++){
            sim[i][j]=similar(x[i],x[j],1412);//通过向量方法计算相似度 
        }
    }
    for(i=0;i<942;i++){
        for(j=0;j<1412;j++){
            for(m=0;m<942;m++){
                score[i][j]=score[i][j]+sim[i][m]*x[m][j];//加权计算得分 
            }
        }
    }//计算每个用户对于每件商品可能的喜爱程度
    
    for(i=0;i<942;i++){
        for(j=0;j<1412;j++){
            top[i][j]=j+1;
        }
    }
    
    for(i=0;i<942;i++){
        for(j=0;j<1412;j++){
            list[i][j]=score[i][j];
        }
    }
    for(i=0;i<942;i++){
        for(j=1411;j>=0;j--){
            for(m=0;m<j;m++){
                    if(list[i][m]<list[i][j]){
                        n=list[i][j];
                        list[i][j]=list[i][m];
                        list[i][m]=n;
                        n=top[i][j];
                        top[i][j]=top[i][m];
                        top[i][m]=n;
                }
            }
        }
    }//按照分数对用户可能喜欢的商品进行排序
      
    FILE *fpRead=fopen("test.txt","r");  
    if(fpRead==NULL)  
    {  
        return 0;  
    }  
    for(i=0;i<926;i++)  
    {  
        fscanf(fpRead,"%d ",&result[i][0]);    
    }//读取test数据 
    fclose(fpRead);
    for(i=0;i<926;i++){
        for(j=1;j<11;j++){
            result[i][j]=top[result[i][0]][j-1];
        }
    }//在数组中填入top10商品 
    FILE *fpWrite=fopen("202200271019_result.txt","w");  
    if(fpWrite==NULL){  
        return 0;  
    }  
    for(i=0;i<926;i++){
        for(j=0;j<11;j++){
            fprintf(fpWrite,"%d ",result[i][j]);
        }
        fprintf(fpWrite,"\n");
    }//写入top10推荐 
    fclose(fpWrite);     
    return 0;
}



你这个没有什么循环过多的问题,但是可能有死循环,你调试下

不知道你这个问题是否已经解决, 如果还没有解决的话:


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^