JAVA错误分析

来源:百度知道 编辑:UC知道 时间:2024/09/28 08:15:18
public class code {
public static void main(String args[])
{
char ball[] = new char [30];
char r = '红';
char g = '绿';
for(int i = 0;i < 30;i++)
{
ball [i] = g;
}
final int N = 30;
final int S = 1;
final int M = 13;
int p[] = new int [N];
int i,s,w,j;
s = S;
for(i = 1;i <= N;i++)
p[i-1]=i;
for(i =N;i >=2;i--)
{
s = (s + M - 1) % i;
if(s == 0) s = i;
w = p[s-1];
for(j = s;j <= (i-1);j++)
p[j-1] = p[j];
p[j-1] = w;
}
for(i = p.length - 1;i >= 15;i--)
{
int ss;
ss = p [i];
ball [ss] = r;
}
for(int k = 0;k < 30;k++)
{
System.out.print((k + 1) + "\t");
}
System.out.println("\n");
for(int k = 0;k < 30;k++)
{
System.out.print(ball[i] + "

for(i = 1;i <= N;i++)
p[i-1]=i;//注意p[29]为30
for(i = p.length - 1;i >= 15;i--)
{
int ss;
ss = p [i]; //i=29时,ss为30,ball[30]不合法
ball [ss] = r;
}

数组越界访问啊...

数组越界了访问,应用强制转化。OK?