Java

Прошу помощи код Java

Добрый день ! Прошу вас помочь не могу не как решить задачу.
Напишите программу, которая принимает с клавиатуры целое положительное трехзначное число и выводит на экран его цифры, разделенные знаком «пробел», но в обратном порядке. Например для числа 415 будет выведено на экран 5 1 4

Решил делать через массив... Но данные не попадают в массив. Что не так делаю ???.
Пример кода :
package com.company ;
import java.util.Scanner;

public class Main
{
public static void main( String [] args) {
Scanner input = new Scanner( System.in );
System.out.print("Введите число: ");
int[] numbers = input.nextInt(); // создаеться переменна в нее помещаеться число

// System.out.println("Добро пожаловать в курс " +name); // выводит данные с перменной
// int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
System.out.println("Массив перед реверсом:");

for (int i = 0; i < numbers.length; i++) {
System.out.print(numbers[i] + " ");
}
for (int i = 0; i < numbers.length / 2; i++) {
int temp = numbers[i];
numbers[i] = numbers[numbers.length - 1 - i];
numbers[numbers.length - 1 - i] = temp;
}
System.out.println("\nМассив после реверса:");
for (int i = 0; i < numbers.length; i++) {
System.out.print(numbers[i] + " ");
}
}
}
Fox Ti
Fox Ti
457
public String foo(int n)
{
String s="";
while (n>0)
{
s+=n%10+" ";
n/=10;
}
return res;
}

public static void main( String [] args)
{
...
int[] numbers = input.nextInt(); // создаеться переменна в нее помещаеться число
for (int i:numbers)
{
sout(foo(i));
}

}
Алексей Карамнов
Алексей Карамнов
17 648
Лучший ответ
зачем массив?...
Fox Ti Думал данные в массив закинуть, а потов их обернуть и разделить пробелом. Просто у меня не получается через переменную это сделать. Я пробыл у меня первая цифра получилось обернуть и пробел поставить, а остальные были слитно.
Евгений Якутенко идея понятна. просто с тремя числами дело имеешь и заморачиваться с созданием массива, и с его сортировкой... как бы не решаешь поставленную задачу.
мне так показалось.
Метод nextInt() возвращает одно число int, а не массив int[].

Вам нужно прочесть одно число int.

Затем разобрать его на цифры — например, путем деления на 10 с остатком.
Смотрите, какая магия:
345 % 10 = 5 (взяли цифру справа)
345 / 10 = 34 (откусили ее)
34 % 10 = 4 (взяли еще одну цифру справа)
34 / 10 = 3 (откусили, последняя цифра 3)

Для трехзначного числа можно не париться с циклом, а разобрать число n так:

единицы = n % 10
десятки = (n / 10) % 10
сотни = n / 100

А затем вывести единицы, десятки и сотни. Через пробел.
Fox Ti Спасибо, что объяснили
Fox Ti Вы выручили меня.... огромное спасибо
твой препод пудрит тебе мозги,вместо того что бы объяснять материал он задаёт тебе головоломки


вот так будет через цикл без пробела

import java.util.Scanner;
public class Cool{
public static void main(String[] args) {
int x = 1234;
Scanner scan = new Scanner( System.in );
while (x > 1000 || x < 100) {
x = scan.nextInt();
}
int y = Integer.parseInt(new StringBuilder(String.valueOf(x)).reverse().toString());
System.out.println("x = " + x);
System.out.println("y = " + y);
}
}
Наиль Салахов
Наиль Салахов
19 277
Ошибка в вашем коде (кроме того, ваш код не соответствует вашему техническому заданию) в том что вы не правильно инициировали массив : int[] numbers = input.nextInt().

Так делать нельзя. Справа от знака равно у вас массив чисел, а слева - число Int.

Ваш код работает или с массивом, который вы закоментировали (int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };), либо корректной инициализацией массива и заполнением массива в цикле.

 public static void main(String[] args) { 
Scanner input = new Scanner( System.in );
System.out.print("Введите число: ");
//неправильная инициализация массива. С левой части массив int[] numbers,
//с правой части число Int (input.nextInt())
//int[] numbers = input.nextInt();

//правильная инициализация массива.
int[] numbers = new int[9];

// System.out.println("Добро пожаловать в курс " +name); // выводит данные с перменной
//int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
System.out.println("Массив перед реверсом:");

//в этом цикле созданный массив заполняется числами от 1 до 9
for (int i = 0; i < numbers.length; i++) {
System.out.println("enter the number : ");
numbers[i] = input.nextInt();
//System.out.print(numbers[i] + " ");
}

for (int i = 0; i < numbers.length / 2; i++) {
int temp = numbers[i];
numbers[i] = numbers[numbers.length - 1 - i];
numbers[numbers.length - 1 - i] = temp;
}

System.out.println("\nМассив после реверса:");

for (int i = 0; i < numbers.length; i++) {
System.out.print(numbers[i] + " ");
}

}
Daler Abdulloev
Daler Abdulloev
838