where is my error in this code how to solve it????
从键盘上读取10个输入,并将它们存储在一个数组中。在数组中找到最大值和最小值的位置(或索引),并将它们交换(将最大的元素移动到最小的位置,然后将最小的元素移动到最大的位置)并再次打印。如果用户输入7、13,-5、10、6,则您的程序应打印7,-5、13、10、6
//input=4,5,6,7 output =7,5,6,4
import java.util.Scanner ;
public class lab01task02{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int a[]=new int [10];
for(int i=0;i<a.length;i++){
a[i]=sc.nextInt();
}
maximum(a);
minimum(a);
swap(a,int maxindex, int minindex);// error over here
print(a);
}
public static int maximum(int b[]){
int max=0;
int maxindex=0;
for(int i=0;i<b.length;i++){
if(max<b[i]){
max=b[i];
maxindex=i;
}
return maxindex;
}
}
public static int minimum(int x[]){
int min=0;
int minindex =0;
for(int i=0;i<x.length;i++){
if(min>x[i]){
min=x[i];
minindex=i;
}
return minindex;
}
}
public void swap(int c[],int maxindex ,int minindex){
c[minIndex] = max;
c[maxIndex] = min;
}
public void print(int z[]){
for (int i=0;i<z.length;i++){
System.out.print(z[i]+",");
}
}
}
例如,如果用户以最小,最大数交换数组中的4,5,6,7,则将交换并且输出将为7,5,6,4
答案 0 :(得分:0)
在调用swap()时,没有正确地为方法提供参数。正确的方法调用类似于
swap(a, maxIndex, minIndex);
方法maximum(a)
和minimum(a)
返回未分配给任何东西的整数值。因此,您需要将这些返回值分配给传递给交换函数的参数。所以像
int maxIndex = maximum(a);
int minIndex = minimum(a);
swap(a, maxIndex, minIndex);
print()
和swap()
方法必须是静态的,因为它们是从主函数(静态)中调用的。
maximum()
和minimum()
方法都需要将它们的return语句也移到for
循环之外。
swap()方法还应该返回修改后的c数组。所以方法签名看起来像
public static int[] swap(int c[], int maxindex, int minindex)
,然后在您的主目录中,您会称呼swap()
之类的
a = swap(a, maxindex, minindex);
最后,在swap()
方法中,您引用了未定义的max
和min
。我想你想要类似的东西
int min = c[minindex];
int max = c[maxindex];
c[minindex] = max;
c[maxindex] = min;
这些修复都不是特别困难的事情,如果您使用像eclipse这样的IDE,所有这些修复都会被掩盖。因此,我强烈建议您使用IDE编写代码(如果不是这样的话)。这可以帮助诊断和修复错误并自动设置代码格式以使其易于阅读和理解,以及其他多项好处。
您也应该发布在运行代码时遇到的错误。