Как подсчитать количество элементов в массиве?Как подсчитать количество элементов, добавленных в массив, и найти среднее число чисел, добавленных в Java?
Таким образом, массив может содержать 10 элементов, но не все заполняются. Как подсчитать количество введенных элементов?
Также, как правильно найти среднее значение массива? То, что я теперь дает мне это,
Количество действующих марок, введенных в 10 [D @ 7ea987ac [D @ 7ea987acAverage: 0,0
//validate strings entered by user
if(convertedInput >= 0 && convertedInput <=100){
ValidArray[validArraycount] = convertedInput;
validArraycount ++;
}
}
catch(NumberFormatException e){
}
//Prints number of valid values entered
System.out.println("The number of valid grades entered is " + vArrayLen);
//for printing array backwards
for (int i = (arraycount-1); i>=0; i--){
System.out.print(ValidArray);
}
//calculates sum of all values in array of ValidArray (of grades)
for(double d : ValidArray){
sum += d;
}
//avergae of valid number array
double average = (sum/ValidArray.length);
System.out.println("Average: " + average);
}
}
Спасибо.
EDIT: Вход должен содержать до 10 строк. Все может быть введено. Допустимые строки - это двойные числа между 0-10, которые могут быть 0 и 10. Все строки недействительны, отбрасываются. В настоящее время это то, что мой код выглядит следующим образом:
import java.util.*;
public class Grades{
public static void main(String args[]){
int arraycount = 0;
final int SIZE = 100;
int validArrayCount = 0;
final int ValidArraySize = 100;
int valuesinValidArray = 0;
Scanner reader = new Scanner(System.in);
String initialInput = new String ("");
String [] sArray = new String[SIZE];
double [] ValidArray = new double[ValidArraySize];
double sum = 0;
boolean exit = false;
System.out.println("You may enter up to 100 grades.");
System.out.println("When you are done entering grades, press the enter/return key.");
//Prints to user. Stops if nothing is entered.
while((arraycount < SIZE)&&(exit == false)){
System.out.println("Enter line " + (arraycount+1) + ": ");
initialInput = reader.nextLine();
if (initialInput.length()<1){
exit = true;
}
else{
sArray[arraycount]=initialInput;
arraycount++;
}
}
//convert string to double
try{
double convertedInput = Double.parseDouble(initialInput);
//validate strings entered by user
if(convertedInput >= 0 && convertedInput <=100){
ValidArray[validArrayCount] = convertedInput;
validArrayCount ++;
}
}
catch(NumberFormatException e){
}
//Prints number of valid values entered
System.out.println("The number of valid grades entered is " + vArrayLen);
//for printing array backwards
for (int i = (ValidArraySize-1); i>=0; i--){
System.out.println(ValidArray[i] + "");
}
//calculates sum of all values in array of ValidArray (of grades)
for(double d : ValidArray){
sum += d;
}
//avergae of valid number array
double average = (sum/validArrayCount);
System.out.println("Average: " + average);
}
}
«Таким образом, массив может содержать 10 элементов, но не все заполняются. Как подсчитать количество введенных элементов? »Определите переменную и отслеживайте счет самостоятельно. (На самом деле, похоже, что у вас уже есть переменная, содержащая счет. Используйте это.) Это почти единственный способ , если вы не используете ['ArrayList'] (http://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html). – ajb
Массивы Java не являются динамическими, как только вы их инициализируете они имеют фиксированную длину. Можете ли вы использовать коллекцию типа 'ArrayList'? Также вы уверены, что включили все свои требования (кажется, вы делаете ряд других вещей)? –
' double [] 'будет есть каждая запись, инициализированная до нуля по умолчанию. –