如果有人可以帮我解决以下问题,我们会很高兴。下面的方法假设返回一个数组,其第i个条目是int i出现在数组a中的次数。方法名称使用此方法。绘制数组a中的数据直方图。
public static int histogram(int M, int[] a){
int[] b = new int[M];
for (int i = 0; i < M; i++){
int w = 0;
for (int j = 0; j < a.length; j++){
if (a[j] == i){
w++;
}
}
b[i] = w;
}
return b;
}
对我来说代码是正确的 - 这可能是错的 - 我无法测试它,因为我有一个错误,这真的让我烦恼。
Histogram.java:22:不兼容的类型 发现:int [] 必需:int 返回b;
1)上述意味着什么?例如在互联网和我的手册中,他们也只使用“返回b;”将数组返回主程序。
2)返回功能究竟如何工作?我是否可以使用以下代码打印数组b的值?因为此刻我得到一个错误,因为数组b没有在main中初始化...我认为如果错误1被整理出来,错误就会消失。我是JAVA的新手,所以我真的不知道 - 编程新手。
for (int x = 0; x < M; x++){
System.out.printf("%d ", b[x]);
}`
3)我是否可以在histogram()方法中打印值?要回答的问题是使用直方图值“返回”数组。
如果你能提供帮助,真的很高兴......
如果你走得这么远 - 非常感谢......即使只是阅读到这里也意味着很多:)
答案 0 :(得分:9)
您应该尝试返回整数数组而不是单个整数
public static int[] histogram ...
但我不确定2&amp; 3。
2)return
不是函数,它是一个让你离开方法的关键字
3)如果你愿意,你可以。
修改强>
无论你在histogram
方法中声明的变量是什么,它们都是本地的。如果您想在main
方法中使用某个变量,请声明它。如,
int[] b = histogram(param1, param2);
答案 1 :(得分:3)
2。)你的主要应该有:
int[] b = histogram(M, a);
3.)不管你怎么做我认为 - 保持输入/输出的东西是主要的,只是在直方图方法中保留直方图构造的东西。
答案 2 :(得分:0)
Public static int[] // since the return is an array
我认为你可以调用这个方法
histogram();
中的main method
并希望它能够正常运作。
答案 3 :(得分:0)
当你使用数组时,你应该把它写在一个不在类体中的类的方法中
并且return也不是方法或函数,它只是我们在方法中使用的关键字
所以在方法中编写它然后再次编译它!