工具:eclipse
题目: 判断用户输入的一个整数是否在已知的组块中
import java.util.*;
public class Exdate_1 {
public static void main(String arg[]) {
int start=0,end,middle;
int a[]= {12,45,67,89,123,-45,67};
int N=a.length;
for(int i=0;i<N;i++) { //从小到大排序
for(int j=i+1;j<N;j++) {
if(a[j]<a[i]) {
int t=a[j];
a[j]=a[i];
a[i]=t;
}
}
}
Scanner scanner = new Scanner(System.in); //控制输入语句的类创建对象scanner
System.out.println("输入一个整数,判断其是否在已知序列中:");
int Number=scanner.nextInt(); //等待用户输入
int count=0;
end=N;
middle=(start+end)/2;
while(Number!=a[middle]) { //从中间开始查找
if(Number>a[middle])
start=middle;
else if(Number<a[middle])
end=middle;
middle=(start+end)/2;
count++;
if(count>N/2) //控制跳出
break;
}
if(count>N/2)
System.out.printf("%d不在数组中\n",Number);
if(count<N/2)
System.out.printf("%d在数组中\n",Number);
}
}
运行结果
输入一个整数,判断其是否在已知序列中:
50
50不在数组中
理解数组的输出和引用
public class ExDate {
public static void main (String arg[]) {
int a[]= {1,2,3,4};
int b[]= {100,200,300};
char c[]= {'咘','麓'};
System.out.println("数组a的元素个数:"+a.length);
System.out.println("数组b的元素个数:"+b.length);
System.out.println("数组a的引用:"+a); //直接输出非字符型数组时,输出的是数组的引用
System.out.println("数组b的引用:"+b);
a=b; //a和b具有相同的引用(地址)
System.out.println("a=b; 赋值后");
System.out.println("数组a的引用:"+a);
System.out.println("数组b的引用:"+b);
System.out.println("数组a的值:");
for(int x:a)
System.out.println(x);
System.out.println("数组b的值:");
for(int y:b)
System.out.println(y);
System.out.println(c); //字符型数组可以直接输出
}
}
输出结果
数组a的元素个数:4
数组b的元素个数:3
数组a的引用:[I@7c30a502
数组b的引用:[I@49e4cb85
a=b; 赋值后
数组a的引用:[I@49e4cb85
数组b的引用:[I@49e4cb85
数组a的值:
100
200
300
数组b的值:
100
200
300
咘麓