Из-за объекста , как я думаю...Но как исправить не знаю.
import java.util.Scanner;
class Runners
{
String name;
double time;
public static void main(String[] args)
{
System.out.println("Сколько всего бегунов?");
Scanner scan = new Scanner(System.in);
int number = scan.nextInt();
if (number < 3)
{
System.out.print("Не может быть меньше 3 бегунов! ");
}
else
{
Runners[] run=new Runners[number];
int x=0;
while( x < run.length) {
run[x]=new Runners();
System.out.print("Фамилия бегуна?: ");
run[x].name=scan.next();
System.out.println("Время бегуна? ");
run[x].time=scan.nextDouble();
}
}
Sorting(Runners[]run ,int number); // ошибка тут !!!!!!!!!!!!!
}
public void Sorting (Runners[]run ,int number){
double resultsTMP;
String sernameTMP;
double minValue;
int minValueInd;
for (int i = 0; i<number; i++){
minValue = run[i].time;
minValueInd = i;
for (int j = i + 1; j<number; j++) {
if (run[j].time < minValue) {
minValue = run[i].time;
minValueInd = j;
}
}
if (minValueInd != i) {
resultsTMP = run[i].time;
run[i].time = run[minValueInd].time;
run[minValueInd].time = resultsTMP;
sernameTMP = run[i].name;
run[i].name = run[minValueInd].name;
run[minValueInd].name = sernameTMP;
}
}
for (int i=0;i<3;i++){
System.out.println((i+1)+" "+ run[i].name + " "+ run[i].time);}
}
}
Метод Sorting должен быть объявлен как static:
public static void Sorting (Runners[] run ,int number)
При передачи аргументов в метод уже не надо указывать повторно тип данных этих аргументов:
Sorting(run , number); // пишется так
Sorting(Runners[]run ,int number);// это ошибка
Обьявлять инициализацию массива следует до цикла, а не в самом цикле while, так как после выхода из цикла массив больше не существует(читай про область видимости):
String name; double time; public static void main(String[] args) {
System.out.println("Сколько всего бегунов?");
Scanner scan = new Scanner(System.in);
int number = scan.nextInt();
Runners[] run=new Runners[number]; // создавай тут
if (number < 3)
{
System.out.print("Не может быть меньше 3 бегунов! ");
}
else
{
int x=0;
while( x < run.length) {
run[x]=new Runners();
System.out.print("Фамилия бегуна?: ");
run[x].name=scan.next();
System.out.println("Время бегуна? ");
run[x].time=scan.nextDouble();
}
}
Sorting(run , number); // ошибка тут
}
В это строчке:
while( x < run.length)
x будет всегда меньше и следовательно цикл будет бесконечным! в самом цикле напиши увеличение x на единицу!
В итоге получается рабочая программа:
import java.util.Scanner;
class Runners
{
String name;
double time;
public static void main(String[] args)
{
System.out.println("Сколько всего бегунов?");
Scanner scan = new Scanner(System.in);
int number = scan.nextInt();
Runners[] run=new Runners[number];
if (number < 3)
{
System.out.print("Не может быть меньше 3 бегунов! ");
}
else
{
int x=0;
while( x < run.length) {
run[x]=new Runners();
System.out.print("Фамилия бегуна?: ");
run[x].name=scan.next();
System.out.println("Время бегуна? ");
run[x].time=scan.nextDouble();
x++;
}
}
Sorting(run , number); // ошибка тут
}
public static void Sorting (Runners[] run ,int number){
double resultsTMP;
String sernameTMP;
double minValue;
int minValueInd;
for (int i = 0; i<number; i++){
minValue = run[i].time;
minValueInd = i;
for (int j = i + 1; j<number; j++) {
if (run[j].time < minValue) {
minValue = run[i].time;
minValueInd = j;
}
}
if (minValueInd != i) {
resultsTMP = run[i].time;
run[i].time = run[minValueInd].time;
run[minValueInd].time = resultsTMP;
sernameTMP = run[i].name;
run[i].name = run[minValueInd].name;
run[minValueInd].name = sernameTMP;
}
}
for (int i=0;i<3;i++){
System.out.println((i+1)+" "+ run[i].name + " "+ run[i].time);}
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Стоит задача сделать простейшее взаимодействие между 4мя технологиямиТ
Gradle 47 не запускает юнит тесты пр нажатии на testClasses в InelliJ IDEA: