当前位置: 首页 > 知识库问答 >
问题:

我的代码给了我一些奇怪的信息,我不知道如何解释

上官高逸
2023-03-14

当我尝试编译这段代码时,Eclipse会出现以下两个错误:

>

  • 用于maxmin函数:maxmin的非法修饰符;只允许最终

    对于Mn:Mn不能解析为变量

    为什么会出现这两个错误?

    我想这可能已经回答了这个问题,但我不明白其中使用的术语。

    这是我的代码:

    public static int maxmin(int [][]B, int ver) {
        if (ver == 1) {            // max operation
            int M = 0;
            for (int m = 1; m < 3; m++){
                for (int n = 1;n < 3; n++){
                    if (M < B[m][n]){
                        M = B[m][n];
                    }
                }
            }
            return M;
        } else if (ver == 2) {     // min operation
            int Mn=10;
        }
        for (int m = 1; m < 3; m++) {
            for (int n = 1; n < 3; n++) {
                if (Mn > B[m][n]) {
                    Mn = B[m][n];
                }
            }
        }
    }
    return Mn;
    }
    
  • 共有2个答案

    田博易
    2023-03-14
    public static int maxmin(int[][] B, int ver) {
        if (ver == 1) {// max operation
            int M = 0;
            for (int m = 1; m < 3; m++) {
                for (int n = 1; n < 3; n++) {
                    if (M < B[m][n]) {
                        M = B[m][n];
                    }
                }
            }
            return M;
        } else if (ver == 2) {// min operation
            int Mn = 10;
    
            for (int m = 1; m < 3; m++) {
                for (int n = 1; n < 3; n++) {
                    if (Mn > B[m][n]) {
                        Mn = B[m][n];
                    }
                }
            }
            return Mn;
        } else {
            throw new IllegalArgumentException("invalid ver, must be 1 or 2");
        }
    }
    
    成浩漫
    2023-03-14

    Mn变量在else if块中定义。因此,当您在for循环中访问它时,它找不到它的声明。Insetad应该在方法开头移动声明int Mn=0,并在else if中将其分配给10

     类似资料:
    • 给定一个0和1的数组,我们最多可以将K个值从0更改为1。 返回仅包含1的最长(连续)子数组的长度。 例1: 例2: 注: https://leetcode.com/problems/max-consecutive-ones-iii/ 这是问题链接。在第一个测试用例中,我得到了输出9,但应该是6。我不知道哪里出了问题?

    • 抱歉,如果不允许这样做。这是我第一次问问题。无论如何,我应该实现一个程序,根据文本读取等级。 “实施一个程序,根据以下内容计算理解某些文本所需的大致年级水平。文本:恭喜!今天是你的一天。你要去很棒的地方!你走了,走了!3 年级 在完成代码之后。每次我编译它时,它都会给我一个异常,即我除以零。几乎就像在我要求用户输入文本后,它根本不被读取,字母计数保持在零。我不知道如何绕过它。下面是我导入java.

    • 所以我需要为学校编写一个Java程序:它需要用户想要多少(IQ)值,然后调用一个computeMethod来计算这些值,然后生成一个输出,但有一个数字格式的Exception,我不知道它是从哪里来的。以下是我认为给我带来例外的方法: main方法只接受一个字符串,并让它计算它将在哪里被分隔成数字,然后将数字存储在一个int数组中。 此外,模态是数据中出现次数最多的元素。 (很抱歉,我刚从IDE复制

    • 我拿不到输出。。有人能帮我得到输出吗 下面给出了程序运行的示例(注意:下面的粗体文本是用户输入的输入): 输入三角形的三条边

    • 我已经调试这段代码好几个小时了,试图让输出正确无误。它在早期工作,但输出中存在逻辑错误,因此我进入并在输出函数中添加了循环和一个额外参数。 现在g给我以下错误: Student.cpp:在成员函数“void Student::input data(std::string,int,STD::string 如何修复此代码?:

    • 我遇到了一些问题,AppEngine抱怨我的代码有Java1.8方法,而AppEngine需要Java1.7。下面是错误跟踪。我不知道该怎么修理它。