TBACAMILLE 2018-02-07 17:06 采纳率: 50%
浏览 748
已采纳

杭电Java2023 我自己的测试数据跟AC过的代码是一样的输出,不明白错在哪里,求大神指教

我的代码:
import java.util.Scanner;

public class Main{

public static void main(String[] args) {

Scanner in = new Scanner(System.in);

while(in.hasNext()) {
int n = in.nextInt();
int m = in.nextInt();
double sum = 0;
double arg = 0;
int number = 0;
int end = 0;
double market[][]=new double [n+1][m+1];
double claarg[]=new double[m+1];
for(int i = 1;i<=n;i++) {
for(int j = 1;j<=m;j++){
market[i][j]=in.nextDouble();
}
}
for(int i = 1;i<=n;i++) {
for(int j = 1;j<=m;j++)
{
sum = sum+market[i][j];
if (j==m&&i!=n)
{
arg = sum/m;
System.out.print(String.format("%.2f",arg)+" ");
sum = 0;
}
if (j==m&&i==n)
{
arg = sum/m;
System.out.println(String.format("%.2f",arg));
sum = 0;
}
}
}
for(int j = 1;j<=m;j++) {
for(int i = 1;i<=n;i++)
{
sum = sum+market[i][j];
if (i==n&&j!=m)
{
arg = sum/n;
claarg[m]=arg;
System.out.print(String.format("%.2f",arg)+" ");
sum = 0;
}
if (i==n&&j==m)
{
arg = sum/n;
System.out.println(String.format("%.2f",arg));
claarg[m]=arg;
sum = 0;
}
}
}
for(int i = 1;i<=n;i++) {
for(int j = 1;j<=m;j++)
{
if (market[i][j]>=claarg[j])
{
number++;
if (number==m)
{
end++;
number = 0;
}
}

}
}
System.out.println(end);
System.out.println();
}
}
}

 AC过的代码:
 import java.util.Scanner;

public class prectise
{
public static void main(String[]args)
{
Scanner scanner=new Scanner(System.in);
while(scanner.hasNext())
{
int n=scanner.nextInt();
int m=scanner.nextInt();
int arr[][]=new int[n][m];
double hori[]=new double[n];
double vert[]=new double[m];
int good=0;//求满足条件学生数量

        double averhori=0;//学生的平均成绩
        double aververt=0;//学科的平均成绩
        for(int i=0;i<n;i++)
        {
            for(int j=0;j<m;j++)
            {
                arr[i][j]=scanner.nextInt();
                hori[i]+=arr[i][j];
            }

        }

        for(int j=0;j<m;j++)
        {
            for(int i=0;i<n;i++)
            {
                vert[j]+=arr[i][j];
            }
        }


        for(int i=0;i<n;i++)
        {
            averhori=hori[i]/m;//学生的平均成绩

            System.out.printf("%.2f",averhori);
            if(i!=n-1)
                System.out.print(" ");

        }
        System.out.println();
        for(int j=0;j<m;j++)
        {
            aververt=vert[j]/n;
            System.out.printf("%.2f",aververt);
            if(j!=m-1)
                System.out.print(" ");
        }
        System.out.println();

        for(int i=0;i<n;i++)
        {
            boolean flag=true;
            for(int j=0;j<m;j++)
            {

                if((arr[i][j]<vert[j]/n))
                    flag=false;
            }
            if(flag)
            {
                good++;
            }

        }
        System.out.println(good);
        System.out.println();




    }

}

}

  • 写回答

4条回答 默认 最新

  • 电波侵蚀 2018-02-08 02:28
    关注

    我AC了,楼主太粗心

    我贴的是我正确的代码

    这里,你把j写成m了
    图片说明

    这里,number == m后变成0,number不等于m还是要初始化为0啊,你没写
    图片说明

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

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置