My program is to sort numbers in ascending order and finally merge the answer which should also be in ascending order.
Compilation Errors -
**My Error****
Main.java:71: error: incompatible types
k=Integer.parseInt(res);
^
required: int[]
found: int
1 error
我已经尝试了很多来删除此错误,但找不到任何逻辑。
**this my code**
import java.util.Scanner;
import java.util.Arrays;
public class Main
{
public static void main(String[]args)
{
int w=0,x=0;
int[] k=new int[100];
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
if(n<0)
{
System.out.println("Invalid Input");
System.exit(1);
}
int[] m=new int[n];
for(int i=0;i<n;i++)
{
m[i]=sc.nextInt();
}
for(int i=0;i<n;i++)
{
for(int j=i+1;j<n;j++)
{
if(m[i]>m[j])
{
int temp=m[i];
m[i]=m[j];
m[j]=temp;
}
}
}
for(int i=0;i<n;i++)
{
System.out.print(m[i]+" ");
}
w=m[n-1];
System.out.print(w);
int v=sc.nextInt();
if(v<0)
{
System.out.print("Invalid Input");
System.exit(1);
}
int[]r=new int[v];
for(int i=0;i<v;i++)
{
r[i]=sc.nextInt();
}
for(int i=0;i<v;i++)
{
for(int j=i+1;j<v;j++)
{
if(r[i]>r[j])
{
int temp=r[i];
r[i]=r[j];
r[j]=temp;
}
}
}
for(int i=0;i<v-1;i++)
{
System.out.print(r[i]+" ");
}
x=r[v-1];
System.out.print(x);
String res=" "+w+x;
k=Integer.parseInt(res);// error in this line;
Arrays.sort(k);
System.out.println(k);
}
}`
最后的K用于合并w和x的输出,它也应该按升序排列。 有没有其他方法来解决这个问题。 提前谢谢
答案 0 :(得分:1)
您需要将返回的值分配给数组中的实际值(单元格),如:
for(int i=0; i<v; i++) {
....
k[i] = Integer.parseInt(res);
...
}
答案 1 :(得分:0)
k
是int[]
(数组int
)而不是int
。
因此
k = Integer.parseInt(res);
应该是
k[someIndex] = Integer.parseInt(res);
答案 2 :(得分:0)
我同意伊兰的观点。 不兼容的类型通常表示=的左侧部分和=的右侧部分不是同一类型。这不是一个困难的错误。 在你的情况下,右边的部分是一个int,而左边的部分是int数组,所以只需在左边部分添加索引就可以了。