+ 5

Проблема с кодом, не могу понять в чем ошибка! Задача из проектов по Java, суть в том что нужно перевернуть текст наоборот

import java.util.Scanner; public class Program { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String text = scanner.nextLine(); char[] arr = text.toCharArray(); //введите код сюд int a=arr.length; char[] mas=arr; for(int i=0; i<=arr.length; i++) { arr[a]=arr[i]; a--; } System.out.println(mas); } }

31st Jan 2022, 10:34 AM
Нима Найданов
Нима Найданов - avatar
7 odpowiedzi
+ 2
Проблема в том, что вы присваиваете переменной "а" количество символов и используете её в качестве индекса массива, но последний индекс на 1 меньше, так как начинается с 0. По этой же причине условие в цикле должно быть "<", а не "<=". Эти исправления позволят вам увидеть результат вашего творения, дальше думайте сами ☺️, не справитесь - обращайтесь.
31st Jan 2022, 12:36 PM
Solo
Solo - avatar
+ 2
Всё дело в том что вы присвоили mas не значения массива arr а сам массив и теперь когда вы меняете значения arr они тут же меняются и в mas ☺️
31st Jan 2022, 2:51 PM
Solo
Solo - avatar
+ 1
//введите код сюда int a=arr.length-1; //индекс вне допустимого диапазона, принимаем -1 символ [] мас = обр; for(int i=0; i<arr.length; i++) { //используйте < вместо <= мас [я] = обр [а]; //назначаем другой массив mas от последнего символа к первому а--; } //enter code here int a=arr.length-1; //index is out of range, take -1 char[] mas= arr; for(int i=0; i<arr.length; i++) //use < instead of <= { mas[i]=arr[a]; //assign to different mas array from last char to first a--; } edit: @Нима Найданов from char[] mas= arr; modify to this char[] mas = new char[a+1]; из char[] mas= arr; изменить на это char[] mas = new char[a+1];
31st Jan 2022, 12:39 PM
Jayakrishna 🇮🇳
0
Точно, спасибо что показали на ошибки, код работает на половину! В голове у меня говорит что всё должно работать, а на самом деле не работает, очень долго уже сижу на нём! Застрял
31st Jan 2022, 1:48 PM
Нима Найданов
Нима Найданов - avatar
0
import java.util.Scanner; public class Program { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String text = scanner.nextLine(); char[] arr = text.toCharArray(); String result; int a=arr.length-1; char[] mas=arr; for(int i=0; i<arr.length; i++) { arr[i]=mas[a]; a--; } System.out.println(arr); } }
31st Jan 2022, 1:48 PM
Нима Найданов
Нима Найданов - avatar
0
Выводит половину перевёрнутый текст, а остальное как было
31st Jan 2022, 1:48 PM
Нима Найданов
Нима Найданов - avatar
0
Нима Найданов from char[] mas= arr; modify to this char[] mas = new char[a+1]; из char[] mas= arr; изменить на это char[] mas = new char[a+1];
1st Feb 2022, 11:53 AM
Jayakrishna 🇮🇳