重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
import java.util.Arrays;
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:申请域名、网站空间、营销软件、网站建设、峰峰矿网站维护、网站推广。
import java.util.Scanner;
public class Test {
public static void getValue()
{
int[] arrayInt = new int[10];
Scanner s = new Scanner(System.in);
//循环输入十个数字
for(int i=0;i10;i++){
System.out.println("输入第"+(i+1)+"个数字: ");
arrayInt[i] = s.nextInt();
}
//排序
Arrays.sort(arrayInt);
System.out.println("排列后的顺序:");
for(int i=0;iarrayInt.length;i++){
if(i==arrayInt.length-1){
System.out.print(arrayInt[i]);
}else{
System.out.print(arrayInt[i]+",");
}
}
}
public static void main(String[] args) {
getValue();
}
}
已经运行通过了你可以试下:
public class Array {
public static void main(String[] args) {
int i;
int a[] = new int[args.length];
System.out.println("排序前:");
for (i = 0; i args.length; i++) {
String s = args[i];
a[i] = Integer.parseInt(s);
System.out.print(+a[i] + " ");
}
System.out.println( );
System.out.println( "最大的与第一个元素交换后: ");//实现将最大的与第一个元素交换
biggest(a );
System.out.println( );
System.out.println( "最小的与最后一个元素交换后: ");//最小的与最后一个元素交换
smallest(a);
}
//实现将最大的与第一个元素交换
private static void biggest(int[] before) {
int max = 0;
for (int i = 0; i before.length - 1; i++) {
if (before[i + 1] before[max]) {
max = i + 1;
}
}
int temp;
temp = before[max];
before[max] = before[0];
before[0] = temp;
for (int i = 0; i before.length; i++) {
System.out.print(before[i]+" ");
}
}
//实现将最小的与最后一个元素交换
private static void smallest(int[] before){
int small = 0;
for (int i = 0; i before.length - 1; i++) {
if (before[i + 1] before[small]) {
small = i + 1;
}
}
int temp;
temp = before[small];
before[small] = before[before.length-1];
before[before.length-1] = temp;
for (int i = 0; i before.length; i++) {
System.out.print(before[i]+" ");
}
}
}
for(int i=0;i=n;i++){
a[i]=sc.nextInt();
}
你这个循环的循环条件是有问题的
数组长度是n那么数组最后一个数据的索引号应该是n-1
你这里相当于往一个长度n的数组中输入了n+1个数据,是会抛出数组越界异常的,当然没有结果了
还有最后输出整个数组的时候没有必要用循环一个个遍历啊,直接用Arrays类提供的Arrays.toString(array)方法就可以直接输出整个数组了
代码:
public class test {
private static void sort(Integer arr[], int n) {
if (n = 1) return; //如果只有一个元素就不用排序了
for (int i = 0; i n; ++i) {
// 提前退出冒泡循环的标志位,即一次比较中没有交换任何元素,这个数组就已经是有序的了
boolean flag = false;
for (int j = 0; j n - i - 1; ++j) { //此处你可能会疑问的jn-i-1,因为冒泡是把每轮循环中较大的数飘到后面,
// 数组下标又是从0开始的,i下标后面已经排序的个数就得多减1,总结就是i增多少,j的循环位置减多少
if (arr[j] arr[j + 1]) { //即这两个相邻的数是逆序的,交换
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
flag = true;
}
}
if (!flag) break;//没有数据交换,数组已经有序,退出排序
}
}
public static void main(String[] args) {
Integer arr[] = {2, 6, 3, 67, 54};
sort(arr, arr.length);
System.out.println("冒泡排序后的数组为");
for (Integer i : arr) {
System.out.println(i);
}
}
}
public static void main(String[] args) {
int[] ins = new int[20];
int tmp;
Scanner sc = new Scanner(System.in);
for (int i = 0; i ins.length; i++) {
System.out.print("输入第"+(i+1)+"个数:");
ins[i] = sc.nextInt();
}
for (int i = 0; i ins.length; i++) {
for (int j = i + 1; j ins.length; j++) {
if(ins[i] ins[j]){
tmp = ins[j];
ins[j] = ins[i];
ins[i] = tmp;
}
}
}
for (int i = 0; i ins.length; i++) {
System.out.println(ins[i]);
}
}