2016-10-26 6 views
0
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 

このエラーを取り除くのに多大な努力をしましたが、ロジックが見つかりませんでした。Interger.parseIntを使用しましたが、互換性のない型エラーが発生しました。

**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の出力をマージして、昇順に並べる必要があります。 これを解決する方法は他にありますか? は、事前に

+1

'int'値を' k'に代入しようとしていますが、 'k'の型は' int [] 'です。あなたはおそらく 'k [i] = Integer.parseInt(res);'のようなものを意味していましたが、あなたのコードが何をしようとしているのかわからないので、 –

+0

また、投稿する前に[mcve]に問題を切り抜いて、慎重にフォーマットすることをお勧めします。現在、約75行のコードを掲載していますが、そのうちのごくわずかなものはあなたの直面する問題に関連しており、そのインデントは全面にあります。私たちはStack Overflowの人々を助けるのが大好きですが、質の高い質問と回答のリポジトリになることを目指しています。今後何年にもあなたの質問を読んでいる人に、あなたのコードのどれくらいが関連するか考えてみてください。 –

+0

ヒント:**すべての**知っておく必要があることを示すエラーメッセージが表示されます。どの行、どの変数、何が期待されているのか、何が与えられているのかがわかります。これらのメッセージを注意深く読んでください!これは非常に基本的なものであり、スタックオーバーフローに関する疑問にそのようなものを回すモードに入るべきではありません。 – GhostCat

答えて

0

kありがとうint[]intの配列)ではないintです。

したがって

k = Integer.parseInt(res); 

のようにあなたの配列から実際の値(セル)に返された値を割り当てる必要が

k[someIndex] = Integer.parseInt(res); 
1

する必要があります:私は同意する

for(int i=0; i<v; i++) { 
     .... 
    k[i] = Integer.parseInt(res); 
     ... 
} 
0

Eran。 互換性のないタイプは、通常、=の左側部分と=の右側部分が同じタイプでないことを意味します。それは難しいエラーではありません。 あなたのケースでは右の部分はintですが、左の部分はintの配列なので、左の部分にインデックスを追加するだけで問題ありません。

関連する問題