海绵宝宝交响曲 2021-05-18 09:30 采纳率: 0%
浏览 22

HDOJ 2023 ac 错误问题

代码如下:

#include<stdio.h>
#include<math.h>
#include<string.h>
int main()
{
    int n,m;
    int  a[50][5] = { 0 };
    double sudScore[50] = { 0 }, avgScore[5] = { 0 };
    while (~scanf_s("%d %d", &n, &m) && n > 0&&n<=50 && m > 0&&m<=5)
    {
        memset(a, 0, sizeof(a));
        memset(sudScore, 0, sizeof(sudScore));
        memset(avgScore, 0, sizeof(avgScore));
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < m; j++)
            {
                scanf_s("%d", &a[i][j]);
            }
        }
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < m; j++)
            {
                sudScore[i] += a[i][j];
            }
            sudScore[i] /= m;
        }
        for (int j = 0; j < m; j++)
        {
            for (int i = 0; i < n; i++)
            {
                avgScore[j] += a[i][j];
            }
            avgScore[j] /= n;
        }
        for (int i = 0; i < n; i++)
        {
            if (i == n - 1)
            {
                printf("%.2lf\n", sudScore[i]);
            }
            else
            {
                printf("%.2lf ", sudScore[i]);
            }
        }
        for (int i = 0; i < m; i++)
        {
            if (i == m - 1)
            {
                printf("%.2lf\n", avgScore[i]);
            }
            else
            {
                printf("%.2lf ", avgScore[i]);
            }
        }
        int flag = 0;
        for (int i = 0; i < n; i++)
        {
            int flag1 = 0;
            for (int j = 0; j < m; j++) {
                if (a[i][j]>avgScore[j])
                {
                    flag1++;
                }
                if (flag1==m)
                {
                    flag++;
                }
            }
        }
        printf("%d\n\n", flag);
    }
    return 0;
}
 

输入示例于输出示例都相同,结果还是wrong anwser

请教各位大佬帮我康康,孩子对照其他大佬的代码就没发现问题,但是提交别人代码又能AC

  • 写回答

1条回答 默认 最新

  • CUIKHAM~ 2023-08-05 11:20
    关注

    在代码中,存在一些错误和潜在的问题:

    1. 在使用scanf_s函数读取输入时,应该使用%d格式说明符而不是%d %d。改为scanf_s("%d", &n)scanf_s("%d", &m)

    2. 在判断输入的n和m是否在合法范围内时,应该使用逻辑或||而不是逻辑与&&。改为n > 0 || n <= 50m > 0 || m <= 5

    3. 在计算每个学生的平均成绩时,应该使用除法运算符/而不是赋值运算符=。改为sudScore[i] /= m;

    4. 在计算每门课程的平均成绩时,应该使用除法运算符/而不是赋值运算符=。改为avgScore[j] /= n;

    5. 在统计高于每门课程平均成绩的学生人数时,应该将判断条件放在内层循环之外。改为在内层循环结束后判断if (flag1 == m)

    6. 在输出学生平均成绩和课程平均成绩时,应该使用%f格式说明符而不是%lf。改为printf("%.2f\n", sudScore[i]);printf("%.2f\n", avgScore[j]);

    7. 在每次输入学生成绩前,应该先清空输入缓冲区。可以使用fflush(stdin)while (getchar() != '\n')来清空输入缓冲区。

    8. 在每次输入学生成绩前,应该先判断输入是否成功。可以使用if (scanf_s("%d", &a[i][j]) != 1)来判断输入是否成功。

    以上是我发现的一些错误和潜在问题,你可以根据需要进行修正。

    评论

报告相同问题?

悬赏问题

  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用