Java冒泡谁帮我解决下?谢谢

来源:百度知道 编辑:UC知道 时间:2024/05/25 07:50:22
我自己做了下不知道哪出错了 我是初学的用Eclipse做的

public class Clicrl {

/**
* @param args
*/
public static void main(String[] args) {

int[]nums={2,7,1,23,44,55,6,21};

int a,j,temp;
for(a=0;a<7;a++)
{
for(j=0;j<7-a;j++)
{
temp=nums[j+1];
nums[j+1]=nums[j];
nums[j]=temp;//交换过程
}
}
System.out.printf("排序后的成绩为: "+nums[0]);

}

取最大数(取最小把大于改为小于即可)

public static void main(String[] args) {

int[]nums={2,7,1,23,44,55,6,21};

int a,j,temp;
for(a=0;a<7;a++)
{
for(j=0;j<7;j++)
{
if(nums[j+1]>nums[j]){
temp=nums[j];
nums[j]=nums[j+1];
nums[j+1]=temp;//交换过程
}
}
}
System.out.println("排序后的最大成绩为: "+nums[0]);

}

里面有8个数
要改成
for(a=0;a<8;a++)
下面也一样
for(j=0;j<8-a;j++)

1楼的对.

你的代码写的不对啊,除了楼上说的是8个之外,你根本就没写判断语句,而且也不用写什么8,直接写nums.length不是更好,免得出错.判断语句是
if(nums[j]>nums[j+1])
把这句加上才行
整体改动就是
public static void main(String[] args) {

int[]nums={2,7,1,23,44,55,6,21};

int a,j,temp;
for(a=0;a<nums.length;a++)
{
for(j=0;j<nums.length-a-1;j++)
{
if(nums[j]>nums[j+1]){
temp=nums[j];
nums[j]=nums[j+1];
nums[j+1]=temp;