有意思的数组问题 例如:有一组任意数字:21,34,56,78,12,45,编写Java代码,最好用循环实现 第一个数字最大,第二个最小,即:78,56,45,34,21,12 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 怎么看都是个排序问题啊!Arrays.sort()这个就行了。 楼主问题没描述清楚啊,你是要78,12,21,34,56,45吗?我的意思是你只要把最大的和最小的放在前两位,并且保持其他数位置不动,是吗?很土的办法,写个循环实现找前两个最大的数,剩下自己搞定吧。不过要是有重复最大和次最大的,这个办法就稍显笨拙了。public class FindFirstAndSecond { public static void main(String args[]){ int[] iArray = {21, 34, 56, 78, 12, 45}; int max = iArray[0]; int maxIndex = 0; int secondMax = 0; int secIndex = 0; for (int i=0; i<iArray.length; i++){ if (iArray[i] > max){ secondMax = max; secIndex = maxIndex; max = iArray[i]; maxIndex = i; } else if (iArray[i] < max){ if (iArray[i] > secondMax){ secondMax = iArray[i]; secIndex = i; } } } System.out.println(maxIndex +"-"+ max +", "+ secIndex +"-"+ secondMax); }} 对了,上面的代码,我一想不对!下面的这段代码是多余的。else if (iArray[i] < max){ if (iArray[i] > secondMax){ secondMax = iArray[i]; secIndex = i; } } 我也献丑了public class sorting{ public static void main(String[] args) { int[] arr={5,1,9,7,3,0,8,2,6,4}; boolean f=true; // 变量F为开关 for(int i=0;i<arr.length;i++) { f=!f; //开关F在循环交替出现开或关 if(f) //当F为false时把最小数交换给arr[i]中 { for(int j=i+1;j<arr.length;j++) { if(arr[i]>arr[j]) { int temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } } } else //当F为true时把最小数交换给arr[i]中 { for(int j=i+1;j<arr.length;j++) { if(arr[i]<arr[j]) { int temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } } } } for(int i=0;i<arr.length;i++) { System.out.print(arr[i]+" "); } }} Java可视化编程 Java打印出来的txt或者csv文件的中文内容是乱码 怎么得到类型参数的名字 一个关于Java连接数据库的问题 转载:java反射机制 我的conn.rollback怎么没有用? 一个简单输出的问题~~为什么呢~~~ 文挡制作问题?? 如何监听键盘事件? swing 日历控件 哈希表问题 Java实现二次查询和混合查询
Arrays.sort()这个就行了。
public static void main(String args[]){
int[] iArray = {21, 34, 56, 78, 12, 45};
int max = iArray[0];
int maxIndex = 0;
int secondMax = 0;
int secIndex = 0;
for (int i=0; i<iArray.length; i++){
if (iArray[i] > max){
secondMax = max;
secIndex = maxIndex;
max = iArray[i];
maxIndex = i;
}
else if (iArray[i] < max){
if (iArray[i] > secondMax){
secondMax = iArray[i];
secIndex = i;
}
}
}
System.out.println(maxIndex +"-"+ max +", "+ secIndex +"-"+ secondMax);
}
}
else if (iArray[i] < max){
if (iArray[i] > secondMax){
secondMax = iArray[i];
secIndex = i;
}
}
{
public static void main(String[] args)
{
int[] arr={5,1,9,7,3,0,8,2,6,4};
boolean f=true; // 变量F为开关
for(int i=0;i<arr.length;i++)
{
f=!f; //开关F在循环交替出现开或关
if(f) //当F为false时把最小数交换给arr[i]中
{
for(int j=i+1;j<arr.length;j++)
{
if(arr[i]>arr[j])
{
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
else //当F为true时把最小数交换给arr[i]中
{
for(int j=i+1;j<arr.length;j++)
{
if(arr[i]<arr[j])
{
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
}
for(int i=0;i<arr.length;i++)
{
System.out.print(arr[i]+" ");
}
}
}