JAVA小程序,请高手帮我做个注释

publicclassa1{publicstaticvoidmain(Stringargs[]){intn=5;intm=2;intj,p,k;inta[]=newint... public class a1
{
public static void main(String args[])
{
int n =5;
int m =2;
int j,p,k;
int a[] = new int[n];
int b[] = new int[n];
for (int i = 0; i < n; i++)
{
a[i] = i + 1;
}
for (int i = n; i > 1; i--) //主要是这一段循环语句,本人没有理解
{
k = m % i;
for ( j = 0; j < (i - 1) && k < i; j++, k++)
{
b[j] = a[k];
}
for ( p = j, k = 0; p < i && k < (m % i - 1); p++, k++)
{
b[p] = a[k];
}
for (int r = 0; r < n; r++)
{
a[r] = b[r];
b[r] = 0;
}
}
for (int i= 0; i < n; i++)
{
if (a[i] != 0)
{
System.out.println(a[i]);
}
}
}
}
展开
 我来答
incubus_w
2008-05-17 · TA获得超过235个赞
知道小有建树答主
回答量:124
采纳率:0%
帮助的人:126万
展开全部
public class a1 {
public static void main(String args[]) {
int n = 5;
int m = 2;
int j, p, k;
int a[] = new int[n];
int b[] = new int[n];
for (int i = 0; i < n; i++) {
a[i] = i + 1;
}
for (int i = n; i > 1; i--) //循环4次
{
k = m % i;//k的值依次为2,2,2,0
for (j = 0; j < (i - 1) && k < i; j++, k++) {
//循环至j<i-1且k<i,将a[k]的值交给b[j]。
//i=5时(k=2到4), b[0] = a[2], b[1] = a[3], b[2] = a[4]
//i=4时(k=2到3), b[0] = a[2], b[1] = a[3]
//i=3时(k=2), b[0] = a[2]
//i=2时(k=0到1,j=0) b[0] = a[0]
//类似一个阶梯状赋值。
b[j] = a[k];
}
for (p = j, k = 0; p < i && k < (m % i - 1); p++, k++) {
//循环至p < i且k < (m % i - 1),将a[k]的值交给b[p],注意循环开始时都将k初始为0。
//i=5时(k=0), b[3] = a[0]
//i=4时(k=0), b[2] = a[0]
//i=3时(k=0), b[1] = a[0]
//i=2时 无操作
//类似一个阶梯状赋值。
b[p] = a[k];
}
for (int r = 0; r < n; r++) {
//将b数组的值赋a数组,清空b数组的数据为0
a[r] = b[r];
b[r] = 0;
}
}
for (int i = 0; i < n; i++) {
if (a[i] != 0) {
//只有a[0]=3,其他数组元素的值都为0
System.out.println(a[i]);
}
}
}
}

循环了4次,b数组的值分别是
3 4 5 1 0
5 1 3 0 0
3 5 0 0 0
3 0 0 0 0
最后只有b[0]不等于0。
对着注释,楼主自己再好好分析下吧。
zjycaibird
2008-05-17 · TA获得超过1374个赞
知道小有建树答主
回答量:906
采纳率:0%
帮助的人:661万
展开全部
public class a1
{
public static void main(String args[])
{
int n =5;
int m =2;
int j,p,k;
int a[] = new int[n]; //开辟数组空间并且指定大小
int b[] = new int[n];
for (int i = 0; i < n; i++)
{
a[i] = i + 1; //给数组a赋值,a = {1,2,3,4,5};
}
for (int i = n; i > 1; i--) //从5循环到2
k = m % i;
for ( j = 0; j < (i - 1) && k < i; j++, k++)
{
b[j] = a[k];
}
for ( p = j, k = 0; p < i && k < (m % i - 1); p++, k++)
{
b[p] = a[k];
}
for (int r = 0; r < n; r++)
{
a[r] = b[r];
b[r] = 0;
}
}
for (int i= 0; i < n; i++)
{
if (a[i] != 0)
{
System.out.println(a[i]);
}
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式