+ 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); } }
7 odpowiedzi
+ 2
Проблема в том, что вы присваиваете переменной "а" количество символов и используете её в качестве индекса массива, но последний индекс на 1 меньше, так как начинается с 0.
По этой же причине условие в цикле должно быть "<", а не "<=".
Эти исправления позволят вам увидеть результат вашего творения, дальше думайте сами ☺️, не справитесь - обращайтесь.
+ 2
Всё дело в том что вы присвоили mas не значения массива arr а сам массив и теперь когда вы меняете значения arr они тут же меняются и в mas ☺️
+ 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];
0
Точно, спасибо что показали на ошибки, код работает на половину! В голове у меня говорит что всё должно работать, а на самом деле не работает, очень долго уже сижу на нём! Застрял
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);
}
}
0
Выводит половину перевёрнутый текст, а остальное как было
0
Нима Найданов
from char[] mas= arr;
modify to this
char[] mas = new char[a+1];
из char[] mas= arr;
изменить на это
char[] mas = new char[a+1];