2015-10-16 3 views
-2

Итак, я искал разные методы, и все они кажутся сложными. Итак, что мне нужно делать, я бы предпочел не использовать массив, чтобы печатать массив? До сих пор у меня есть это:Java - печать массива

public static void main(String[] args) 
{ 
    int a[] = {2, 3, 5, 7, 11, 13}; 

    int sum = 0; 

    System.out.printf("The average of \n" + a); 

    for(int i = 0; i < a.length; i++) 
     sum = sum + a[i]; 

    double avg = sum/a.length; 

    System.out.println("\nis\n " + avg); 
} 

И печатает это:

The average of
[[email protected] is 6.0

Что я предполагаю, что (не уверен, что я прав) означает, что она печатает местоположение массива не то, что содержится. (Пожалуйста, поправьте меня, если я ошибаюсь). Кроме того, нам дали ответ, который составляет 6,83, а мой - в 6.0, что означает, что я делаю что-то неправильно. Любые идеи относительно того, как печатать массив без использования каких-либо специальных библиотек и откуда возникает математическая проблема?

+4

См http://stackoverflow.com/questions/409784/whats-the-simplest-way-to-print-a-java-array и http://webproverka.com/ //stackoverflow.com/questions/19620225/why-double-width-50-110000-the-output-is-0-000000000000000/19620230 –

+1

System.out.println (Arrays.toString (a)); – Siddhartha

+1

Во всех действиях вы не должны сопротивляться 'Arrays # toString'. Это * удивительно * и гораздо читабельнее, чем что-либо еще. – Makoto

ответ

0
System.out.printf("The average of \n" + a); 

Вы печатаете объект массива, вы должны перебирать его и печатать содержимое по отдельности. OR вы можете использовать Arrays.toString для печати содержимого массива. Также лидирует одно из значений (либо sum, либо array length) до double получил получение avg. драгоценно. Используйте System.out.format() для печати десятичных значений.

int a[] = {2, 3, 5, 7, 11, 13}; 
System.out.print("The average of \n" + Arrays.toString(a)); // print the array 

for(int i = 0; i < a.length; i++) 
    sum = sum + a[i]; 

double avg = (double)sum/a.length; // cast one of the value to double 

System.out.format(" is %.2f", avg); // print the output upto two decimal. 

Выход:

The average of 
[2, 3, 5, 7, 11, 13] is 6.83 
+0

почему проголосовать, пожалуйста, прокомментируйте? – YoungHobbit

+0

Я не уверен. Я поддержал помощь. Так что, насколько я знаю, спасибо! : D – NaughtyBear

+1

Я буду, когда это позволит. «Не удается принять ответ в течение 5 минут после публикации». – NaughtyBear

Смежные вопросы