Visual Studio 完全搞不清这个代码和问题的内容,有人能告诉我从哪里开始吗?[关闭]

csga3l58  于 2023-01-21  发布在  其他
关注(0)|答案(2)|浏览(141)

这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
19小时前关门了。
Improve this question
我不得不用线性扫描来解决这个问题,我甚至不知道从哪里开始,我觉得我应该改变我的职业道路,老实说,这是一个简单的入门问题,我只是不明白它的任何东西。

/**
 * Applies the linear scan strategy to counting the number of negative
 * values in an array.
 */
public class CountNegatives {

    /**
     * Returns the number of negative values in the given array.
     */
    public static int countNegatives(int[]a) {
        neg=0;
        for{i=0;i<a.length;i++}
            if(i>0)
                neg = neg+1;
        return neg;
        
    }
}

我试着在VS和我学校使用的一个叫做JGrasp的工具中运行这个函数,两者都告诉我{应该是(,the;在长度和i之间应该是〉,i〈a。长度不是一个语句,而那个}应该是;
当我更改其中任何一项时,它会告诉我无法找到变量neg = 0,并使代码中的错误数量加倍。

mkshixfv

mkshixfv1#

你错过了一些东西,
1.您没有使用正确的数据类型初始化neg=0;值;应该使用正确的数据类型初始化它,在本例中为int,正确的初始化应为int neg = 0;
1.另一个问题是在for循环中,您仍然需要使用数据类型初始化i

  1. if语句是错误的,它应该是'i〈0',而不是因为您的代码只是计算正值
    1.您将索引值与0进行比较,因此不会得到正确的值,相反,您应该比较数组中对应于该索引的值,您可以通过arrayName[index]来完成此操作。
    正确的代码如下所示:
static int countNegatives(int[] a) {
        
        int neg = 0;
        
        for(int i = 0; i < a.length; i++) {
            if(a[i] < 0) neg++;
            // this will just work as neg = neg +1;
        }
        
        return neg;
    }
}
m2xkgtsf

m2xkgtsf2#

public class CountNegatives {
/**
 * Returns the number of negative values in the given array.
 */
public static int countNegatives(int[]a) {
        int neg=0;
        for(int number : a){
            if(number<0) {
                neg=neg+1;
            }
        }
        return neg;
    }
}

相关问题