В чём проблема? Java
После того, как я ввёл значение, получил такое сообщение:"Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 55 out of bounds for length 55 at programm.main(programm.java:12)"
import java.util.Scanner;
public class programm
{
public static void main (String[] args)
{
int j, i;
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] a = new int[n];
for (i = 0; i <= n; i++)
{
a[i] = i + 1;
}
System.out.println(a);
i = 0;
while (i <= n-1)
{
if (a[i] != 0)
{
j = i + i;
while (j<=n)
{
a[j] = 0;
j += i;
}
}
else
{
i += 1;
}
}
System.out.println(a);
}
}
Ответы (1 шт):
Автор решения: Revasha
→ Ссылка
Проблема в этом цикле
for (i = 0; i <= n; i++)
{
a[i] = i + 1;
}
Индекс массива начинается с 0, по условию у вас <= n, значит, превышена размерность
Поэтому его нужно просто заменить на i < n
Тоже самое касается циклов while (i <= n-1) и while (j<=n), нужно заменить на <