Java题:输入1,2,3,4,5,6,7,8 八个数 按照数组编程,数到五个数跳出来,最后的输出结果是5,2,8,7,1,4,6,3 20

希望给写注释,小弟刚学Java... 希望给写注释,小弟刚学Java 展开
 我来答
不倒翁_白痴
2013-04-14 · TA获得超过283个赞
知道小有建树答主
回答量:186
采纳率:0%
帮助的人:133万
展开全部
抱歉,时间仓促,没有实际运行程序,感谢下面评论的同学,这是我改正后的程序。

int[] sequence = {1, 2, 3, 4, 5, 6, 7, 8};
byte isComplete = 0;// 输入数组长度刚好是8,可以利用1 byte(= 8 bit)的二进制数,
// 记录哪一位置的元素已经被删除, 删除,此位设为1,否则是0
int sequenceLength = sequence.length;// 加入输入序列长度项,实现反复循环不越界
int counter = 0; // 计数器
int i = 0; // 数组index
while(isComplete < 255)// 还有元素没被删除,继续循环
{
// 检查数组的第i个元素是否已经被删除,判断式返回非0,
// 代表isComplete的第i位已经被设置为1,即第i个元素已经被删除
// 下面的while循环找到第一个没有被删除的元素
while((isComplete & (128>>i)) != 0)
{
i++;
// 数组已经遍历完一遍,从头开始遍历
if(i % sequenceLength == 0)
{
i = 0;
}
}
// 找到没有被删除的元素,即当前仍然有效的元素,计数器开始计数
counter++;
if(counter == 5)
{
System.out.print("--"+sequence[i]+" ");
isComplete |= 128 >> i; // 标记当前位置已经被删除
counter = 0;
}
i++;
// 数组已经遍历完一遍,从头开始遍历
if(i>0 && i % sequenceLength == 0)
{
i = 0;
}
}

结果与楼主要求一致
Zero22佐
2013-05-11
知道答主
回答量:4
采纳率:0%
帮助的人:5893
展开全部
不明白你要表达的意思 。数到5跳出,为什么结果是5.2.8.7.1.4.6.3
用一个数来指示数组元素的位置。这个数从1到8,满8跳回1。对8取余实现
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
晋红豆33
2013-04-13 · TA获得超过124个赞
知道小有建树答主
回答量:331
采纳率:0%
帮助的人:80.3万
展开全部
你这个数到五个数是什么意思 ,既然数五个数为什么输出结果会是八个数,我没明白题目啥意思
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乌微月2S
2013-04-13 · TA获得超过5037个赞
知道大有可为答主
回答量:5361
采纳率:42%
帮助的人:2884万
展开全部
这个也没有什么难的啊。
不过你的这个输入时自动的还是手动输入的。
更多追问追答
追问
手动输入
追答

那你手动输入40次,你还真愿意啊。

package baidu;
import java.util.Arrays;
import java.util.Scanner;
public class InputTest {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int count=0;
int[] arr=new int[8];
int index=0;
for(int i=0;i<40;i++){
int tmp=sc.nextInt();
if(count==4){
arr[index]=tmp;
index++;
count=0;
}else{
count++;
}
}
System.out.println(Arrays.toString(arr));
}
}

代码还有优化空间

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式