Добрый день ! Прошу вас помочь не могу не как решить задачу.
Напишите программу, которая принимает с клавиатуры целое положительное трехзначное число и выводит на экран его цифры, разделенные знаком «пробел», но в обратном порядке. Например для числа 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] + " ");
}
}
}
Java
Прошу помощи код Java
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));
}
}
{
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));
}
}
зачем массив?...
Метод 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
А затем вывести единицы, десятки и сотни. Через пробел.
Вам нужно прочесть одно число int.
Затем разобрать его на цифры — например, путем деления на 10 с остатком.
Смотрите, какая магия:
345 % 10 = 5 (взяли цифру справа)
345 / 10 = 34 (откусили ее)
34 % 10 = 4 (взяли еще одну цифру справа)
34 / 10 = 3 (откусили, последняя цифра 3)
Для трехзначного числа можно не париться с циклом, а разобрать число n так:
единицы = n % 10
десятки = (n / 10) % 10
сотни = n / 100
А затем вывести единицы, десятки и сотни. Через пробел.
твой препод пудрит тебе мозги,вместо того что бы объяснять материал он задаёт тебе головоломки
вот так будет через цикл без пробела
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);
}
}
вот так будет через цикл без пробела
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);
}
}
Ошибка в вашем коде (кроме того, ваш код не соответствует вашему техническому заданию) в том что вы не правильно инициировали массив : int[] numbers = input.nextInt().
Так делать нельзя. Справа от знака равно у вас массив чисел, а слева - число Int.
Ваш код работает или с массивом, который вы закоментировали (int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };), либо корректной инициализацией массива и заполнением массива в цикле.
Так делать нельзя. Справа от знака равно у вас массив чисел, а слева - число 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] + " ");
}
}
Похожие вопросы
- Подскажите пожалуйста, как в данном коде Java сделать так, чтоб при нажатии цифры 3 программа завершала свою работу?
- Простейший код java вопрос
- Решить задачку на языке Java. Прошу помощи так как сам работаю с другим языком, этот не знаю)
- Всем привет. Помогите плз. Мне нужна помощь тех кто действительно хорошо знает Java т. к мне нужно выбрать один из курсов
- Помогите доделать код на java. В форму пользователь вводит символ, который нужно заменить на #.
- Не запускается код на Java.
- Как для андроид, в java коде, имитировать нажатие кнопки
- Код на java.
- Написание кода на Java
- Как можно запустить строчку java кода которая хранится в txt файле?
мне так показалось.