【问题标题】:Arrays and many errors [closed]数组和许多错误[关闭]
【发布时间】:2016-11-13 15:08:00
【问题描述】:

不知道如何解决这个问题。每次更改某些内容时都会抛出不同的错误。

我必须创建数组 A 和 B,都是 10 个大的数字。如果 k=0,我必须用随机数 (0-20) 填充 A,用 (50-100) 填充 B,如果 k 不等于 0,那么我必须使用给定的公式计算两个数组。

最后但同样重要的是,我必须创建第三个数组C= A[0] B[0] A [1] B[1]......

现在我正在处理这个问题:

Exception in thread "main" java.util.IllegalFormatConversionException: f != java.lang.Integer
    at java.util.Formatter$FormatSpecifier.failConversion(Unknown Source)
    at java.util.Formatter$FormatSpecifier.printFloat(Unknown Source)
    at java.util.Formatter$FormatSpecifier.print(Unknown Source)
    at java.util.Formatter.format(Unknown Source)
    at java.io.PrintStream.format(Unknown Source)
    at java.io.PrintStream.printf(Unknown Source)
    at Ld3161rdb146.main(xxx.java:50)

代码:

    public static void main(String[] args) {

        int A[] = new int [10];
        int B[] = new int [10];
        int K, i;
        float C;
        Scanner sc = new Scanner(System.in);

        System.out.println("Imants Kravalis 161RDB146");    
        System.out.print("K=");
        if (sc.hasNextInt())
            K = sc.nextInt();
        else {
            System.out.println("input-output error");
            sc.close();
            return;
        }
        sc.close();
        if (K ==0) 
        {
            Random r = new Random();
            i=0;
            while(i<10)
            {
                A[i] = r.nextInt()*0-21;
            B[i] = r.nextInt()*50-101;
            i++;
            }

        }
        else
            i=0;
            while(i<10)
            {A[i] = i+K;
             B[i] = (i+10)*K;
            i++;
            }




        System.out.println("A:");
        i=0;
        do{
            System.out.printf("%.1f\t", A[i]);
            i++;
        }while(i<10);

        System.out.println("B:");
        i=0;
        do{
            System.out.printf("%.1f\t", B[i]);
            i++;
        }while(i<10);

        for (i=0; i<20; i++) {
            C=A[i]&B[i];
            System.out.printf("%.1f\t", C);
        }



    }

}

【问题讨论】:

  • 1.) 一些 Recommended Reading 和 2.) 您似乎对某些符号的含义有很多误解。您应该(重新)访问一些基础知识。
  • 请不要把你咄咄逼人的态度带到这里。我编辑了一些东西 - 我们不需要阅读你的挫败感。

标签: java arrays for-loop while-loop


【解决方案1】:

A 和 B 只包含整数,不包含浮点数。 在行上

System.out.printf("%.1f\t", A[i]);

您试图将其视为浮点数,更改为 "%d\t" 即可。 参考this

然后你会得到一个超出范围的数组索引:

 for (i=0; i<20; i++)

由于 A 和 B 仅包含 10 个元素,因此将 20 更改为 10。

【讨论】:

  • 你是我的救星
猜你喜欢
  • 1970-01-01
  • 2017-02-22
  • 2012-08-12
  • 1970-01-01
  • 2013-02-25
  • 1970-01-01
  • 1970-01-01
  • 2021-10-28
  • 2012-12-14
相关资源
最近更新 更多