2016-12-03 14 views
1

私は、Javaプログラミングの新人です。私はここでcharの方法を使用する方法に問題があります。本体のASCII値の平均を取得するには、charメソッドで何を返しますか?ありがとう! JavaではASCII値に基づいて2つの文字を平均化する

public static int average(int i,int j) 
{ 
    return (i + j)/2; 
} 

public static double average(double a,double b) 
{ 
    return (a + b)/2; 
} 

public static char average(char first,char second) 
{ 
    return ?; 
} 

public static void main(String[] args) 
{ 
    char first = 'a', second = 'b'; 
    int i = 5, j = 12; 
    double a = 5.5, b = 8.5; 

    System.out.println("Average of (x,y) is : " + average(first,second)); 
    System.out.println("Average of (a,b) is : " + average(a,b)); 
    System.out.println("Average of (i,j) is : " + average(i,j)); 
} 
+1

charがちょうどint型のように、数ある行うことができます。 –

+0

この回答をお試しください: http://stackoverflow.com/questions/19388037/converting-characters-to-integers-in-java#answer-19388099 – vvwccgz4lh

答えて

1

チャーが最後のintにあるため、平均charは意味がありません。これは結果が再びcharとなるためです。つまり、この場合を考えてみましょう。 'a'と 'b'の平均は何ですか? aは97、bは98、ave = 97.5で表されますが、97.5のchar値はありません。実際にはintに丸められて97に戻りますので、 'a'と 'b'の平均は 'a' 、奇妙なものではない?

とにかくあなたが整数リテラルで割るので、あなたは再びcharに結果をキャストする必要があること

public static char average(char first,char second) 
{ 
    return (char) ( (first + second)/2); 
} 

ノート..

0

char値は自動的int型に型変換されています。

すでにaverage(int i,int j)を持っているので、average(char first,char second)を書く必要はありません。

average(first,second))を呼び出すと、intという引数を取る方法、つまりaverage(int i,int j)が呼び出されます。

関連する問題