问题是:
某百货商场当日消费积分最高的8名顾客,他们的积分分别是:18,25,7,36,13,2,89,63。从这组数中找出最少的积分数以及他在数组中的原始位子。
这个老师讲过,可是时间过的久了,忘了不少,是用数组做的,应约我记得是像打擂一样,先定一个num=0,然后一个数一个数的比较,比他大的就替换掉,可是具体怎么做忘记了貌似还比较容易,就是想不起来。麻烦前辈们教下,大后天就考试了,抓紧复习中……顺便问一下,什么是一维数组,什么是二维数组,2者有什么区别?麻烦各位了,号也是刚注册,分不是很多,请见谅
某百货商场当日消费积分最高的8名顾客,他们的积分分别是:18,25,7,36,13,2,89,63。从这组数中找出最少的积分数以及他在数组中的原始位子。
这个老师讲过,可是时间过的久了,忘了不少,是用数组做的,应约我记得是像打擂一样,先定一个num=0,然后一个数一个数的比较,比他大的就替换掉,可是具体怎么做忘记了貌似还比较容易,就是想不起来。麻烦前辈们教下,大后天就考试了,抓紧复习中……顺便问一下,什么是一维数组,什么是二维数组,2者有什么区别?麻烦各位了,号也是刚注册,分不是很多,请见谅
for(int i = 1; i < array.length; i++){
max = max > array[i] ? max : array[i];
}区别一时语塞啊。。
那改成
if(max < array[i]){
max = array[i];
}看得懂否?
1 2 3 4 5 6 7 [0] [1] [2] [3] [4] [5] [6]這樣是二維(平面)
1 2 3 4 5 6 7 [0][0] [0][1] [0][2] [0][3] [0][4] [0][5] [0][6]
2 3 4 5 6 7 8 [1][0] [1][1] [1][2] [1][3] [1][4] [1][5] [1][6]
2 2 2 2 2 2 2 [2][0] [2][1] [2][2] [2][3] [2][4] [2][5] [2][6]
3 3 3 3 3 3 3 [3][0] [3][1] [3][2] [3][3] [3][4] [3][5] [3][6]int[] x = {18,25,7,36,13,2,89,63};
int num=Integer.MAX_VALUE; //找最小,所以一開始要設最大。
int p=0; //位置
for(int i=0;i<x.length;i++){
if(x[i] < num ){
num = [i];
p=i;
}
}
System.out.println("最小是:"+num+" 位置:"+p);
class Test
{
public static void main(String[] args)
{
int[] arr = {18,25,7,36,13,2,89,63};
int max=0;
int num=0;
for(int i = 0 ;i<arr.length;i++){
if(arr[i]>max){
max=arr[i];
num=i;
}
} System.out.println("最大的号码为:"+max+"---------"+"原始位置为"+num); }
}一维数组就是一个容器,用来装东西,
二维数组也是一个容器,不过里面装的是一维数组的
额老师和我讲的是,顶一个int num=0;
然后一个数一个数的比较,比方说18比num大,num的值就替换成18,再比较下一个数,比他小的就不替换,比他大的就替换,这样一直到最后,最大的数的位子就出来了,具体的不太会,这是找最大数的位子的,我想,最小数应该是反过来吧……有点晕
// TODO Auto-generated method stub
//18,25,7,36,13,2,89,63
int array[]={18,25,7,36,13,2,89,63};
int min[] = new int[2];
min[0] = array[0];
for(int i=0;i<array.length;i++){
min[0] = min[0] < array[i]?min[0]:array[i];
if(!(min[0] < array[i])){
min[1] = i;
}
}
System.out.println("最小的数:"+min[0]);
System.out.println("位置为:"+min[1]+1);
}
}