Avenir_し 2025-04-20 00:34 采纳率: 98%
浏览 21
已结题

计算数中有多少个对数组

img

img

img


这个是为什么,我编译的有些是正确的有些是错误的,我应该怎么修改一下

  • 写回答

5条回答 默认 最新

  • a5156520 2025-04-20 14:34
    关注

    判断那里需要修改下。

    修改如下:

    #include <stdio.h>
    #include <math.h> 
    
    int main(void){
        
        // 因为输入时,行N从下标1开始,所以这里将数组a的行定义为1001,因为N最多1000 
        int N,a[1001][3],sum1, sum2, count=0;
        
        scanf("%d", &N);  // 从输入获取N的值
        // 循环N次,从输入获取N名学生的三科成绩都数组a中 
        for(int i=1;i<=N;i++){
            
            for(int j=0;j<3;j++){
                scanf("%d",&a[i][j]);
            }
            
        }
        
        // 外层循环遍历前一个同学的下标 
        for(int i=1;i<=N;i++){
            
            sum1=0;
            sum2=0;
            
            sum1+=a[i][0]+a[i][1]+a[i][2];  // 计算前一个同学的总分 
            // 内层循环用于遍历后一个同学的下标 
            int k=i+1; 
            while(k<=N){
                sum2+=a[k][0]+a[k][1]+a[k][2]; // 计算后一个同学的总分 
                // https://c.biancheng.net/view/t0l4j2i.html
                int ps1=abs(a[i][0]-a[k][0]);  // 计算语文分差绝对值 
                int ps2=abs(a[i][1]-a[k][1]); // 计算数学分差绝对值 
                int ps3=abs(a[i][2]-a[k][2]); // 计算英文分差绝对值 
                int ss=abs(sum1-sum2);  // 计算总分分差绝对值 
                
    //            printf("第%d个学生:%d %d %d %d\n",i, a[i][0], a[i][1], a[i][2], sum1);
    //            printf("第%d个学生:%d %d %d %d\n",j, a[k][0], a[k][1], a[k][2], sum2);
    //            printf("语文分差;%d, 数学分差:%d,英语分差;%d, 总分差:%d\n", ps1, ps2, ps3, ss);
                // 如果每科分差不大于5,并且总分分差不大于10,则前后两名同学是旗鼓相当的对手,计数器count+1 
                if(ps1<=5&&ps2<=5&&ps3<=5&&ss<=10){
                    count++;
                    
                    //printf("count=%d\n\n", count);
                }
                k++;
                sum2=0;  // 判断完成,后面同学的总分sum2置0,方便计算下一个同学的总分 
            }
            
        
            
        }
        
        printf("%d",count);
        
        return 0;
        
    } 
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 4月30日
  • 已采纳回答 4月22日
  • 创建了问题 4月20日