亦行之 2024-03-08 20:40 采纳率: 34.5%
浏览 1
已结题

pat1077c语言运行结果不正确

img


#include<stdio.h>
#include<stdlib.h>
int cmp(const void *a,const void *b){
    return *(int *)a-*(int *)b;
}
int main()
{
    int n,m;
    scanf("%d %d",&n,&m);
    int g1,g2;
    for(int i=0;i<n;i++){
        scanf("%d",&g1);//老师评分 
        int score[n];
        int temp,num=0,grade=0;
        for(int j=0;j<n-1;j++){
            scanf("%d",&temp);
            if(temp>=0&&temp<=m)
            score[num++]=temp;
        }
        qsort(score,num,sizeof *score,cmp);
        for(int k=1;k<num-1;k++)
        g2+=score[k];
        grade=(int)((g2*1.0/(num-2)+g1)/2+0.5);//四舍五入
        printf("%d\n",grade); 
    }
    return 0;
}

运行结果:

img


请问我哪里有误呢 为什么不能得出正确答案?

  • 写回答

2条回答 默认 最新

  • 关注

    亦行之 晚上好🌙🌙🌙
    本答案参考ChatGPT-3.5

    在分析代码后,我发现存在几个问题:

    1. g2 变量在每次循环开始时没有初始化为0,这会导致累积上一轮的计算结果。
    2. 您在内部循环中对g2进行累加,但在累加之前缺少了对g2的重置。

    修复后的代码如下:

    #include<stdio.h>
    #include<stdlib.h>
    
    int cmp(const void *a, const void *b){
        return *(int *)a - *(int *)b;
    }
    
    int main() {
        int n, m;
        scanf("%d %d", &n, &m);
        
        for(int i = 0; i < n; i++){
            int g1;
            scanf("%d", &g1); // 老师评分
            
            int score[n];
            int temp, num = 0, grade = 0;
            int g2 = 0; // 初始化 g2 为0
    
            for(int j = 0; j < n - 1; j++){
                scanf("%d", &temp);
                if(temp >= 0 && temp <= m)
                    score[num++] = temp;
            }
            
            qsort(score, num, sizeof *score, cmp);
    
            for(int k = 1; k < num - 1; k++) {
                g2 += score[k]; // 累加有效评分
            }
    
            grade = (int)((g2 * 1.0 / (num - 2) + g1) / 2 + 0.5); // 四舍五入
            printf("%d\n", grade); 
        }
    
        return 0;
    }
    

    现在,您应该可以得到正确的运行结果。但请注意,根据题目要求,这个程序可能仍然存在逻辑错误,比如每个学生对应的评分数量(n-1)是否正确等,请确保您的代码逻辑符合PAT测试题目的具体要求。

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

报告相同问题?

问题事件

  • 系统已结题 3月16日
  • 已采纳回答 3月8日
  • 创建了问题 3月8日

悬赏问题

  • ¥20 python忆阻器数字识别
  • ¥15 无法输出helloworld
  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api
  • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
  • ¥15 振荡电路,ADS仿真