二维数组解决,但全红??求助!
查看原帖
二维数组解决,但全红??求助!
1214142
66QwQ99楼主2024/2/25 14:56
#include<stdio.h>
#include<math.h>
int main(){
    int N,cnt=0;
    scanf("%d",&N);
    int grade[1001][3],s_grade[1001][1001],c_sum[1001][1001],m_sum[1001][1001],e_sum[1001][1001];
    double sum[1001];
    int C_grade[1001],M_grade[1001],E_grade[1001]; 
    for(int q=0;q<N;q++){
        for(int w=0;w<3;w++){
            scanf("%d",&grade[q][w]);
        }
    }
    for(int r=0;r<N;r++){
        for(int e=0;e<3;e++){
            sum[r]+=grade[r][e];
        }
    }
    for(int y=0;y<N;y++){
        for(int u=0;u<N;u++){
            if(abs(sum[y]-sum[u])>=10){
            s_grade[y][u]=0;
            }else{
            s_grade[y][u]=1;    
            }
            if(y==u){
            s_grade[y][u]=0;
            }
        }
    }
    printf("\n");
    for(int a=0;a<N;a++){
        for(int s=0;s<1;s++){
            C_grade[a]=grade[a][s];
        }
        for(int s=1;s<2;s++){
            M_grade[a]=grade[a][s];
        }
        for(int s=2;s<3;s++){
            E_grade[a]=grade[a][s];
        }
    }
    for(int h=0;h<N;h++){
        for(int j=0;j<N;j++){
            if(h==j){
            c_sum[h][j]=0;
            m_sum[h][j]=0;
            e_sum[h][j]=0;
            }
            if(abs(C_grade[h]-C_grade[j])<=5){
            c_sum[h][j]=1;
            }else{
            c_sum[h][j]=0;    
            }
            if(abs(M_grade[h]-M_grade[j])<=5){
            m_sum[h][j]=1;
            }else{
            m_sum[h][j]=0;    
            }
            if(abs(E_grade[h]-E_grade[j])<=5){
            e_sum[h][j]=1;
            }else{
            e_sum[h][j]=0;    
            }
        }
    }
    for(int k=0;k<N;k++){
        for(int l=0;l<N;l++){
            if(e_sum[k][l]==1&&c_sum[k][l]==1&&m_sum[k][l]==1&&s_grade[k][l]==1){
            cnt++;
            }
        }
    }
    printf("%d",cnt/2);
    return 0;
}

问题出在哪里?求助!

2024/2/25 14:56
加载中...