//定义数组存储10个数据,将数组中最大数放到第一个元素。
class Exercise09
{
public static void main(String[] args)
{
int[] arr={1,2,3,4,5,10,6,7,8,9};//定义数组。
PutZero pz=new PutZero();//new对象。
pz.put(arr);
}
}
class PutZero
{
int max=0;
int temp;
void put(int[] a)//定义方法将数组中大数和0坐标将换。
{
for (int i=0;i<a.length ;i++ )
{
if (a[i]>a[max])
{
int temp=i;
}
System.out.print(a[i]+" ");
}
for (int i=0;i<a.length ;i++ )//重新遍历新数组。
{
int t=temp;
temp=max;
max=t;//将数组中大数和0坐标将换。
System.out.print(a[i]+" ");
}
}
}
//输出结果是:
1 2 3 4 5 10 6 7 8 9 1 2 3 4 5 10 6 7 8 9
前面多1 2 3 4 5 ,后面多 6 7 8 9
帮我优化一下,谢谢
我说的不清楚,很谢谢你,我是要最大元素和第一位交换,其他不变{1,2,3,4,5,10,6,7,8,9}
代码:
void put(int[] a)//定义方法记录最大元素坐标。
{
for (int i=0;ia[max])
{
int p=i;
}
}
for (int i=0;i<a.length ;i++ )//将最大元素和首元素交换。
{
int t=p;
p=max;
max=t;
}
那就是我上面写的第一种。用第一个for循环记录最大数的数组下标。然后将该下标的数和第一个数交换。再用第二个for循环遍历整个数组。
追问我说的不清楚,很谢谢你,我是要最大元素和第一位交换,其他不变{1,2,3,4,5,10,6,7,8,9}
代码:
void put(int[] a)//定义方法记录最大元素坐标。
{
for (int i=0;ia[max])
{
int p=i;
}
}
for (int i=0;i<a.length ;i++ )//将最大元素和首元素交换。
{
int t=p;
p=max;
max=t;
}
public class Exercise09
{
public static void main(String[] args)
{
int[] arr={1,2,3,4,5,10,6,7,8,9};//定义数组。
PutZero pz=new PutZero();//new对象。
pz.put(arr);
}
}
class PutZero
{
int max=0;
int temp;
void put(int[] a)//定义方法将数组中大数和0坐标将换。
{
for (int i=0;ia[max])
{
max=i;
}
}
temp=a[0];
a[0]=a[max];
a[max]=temp;
for (int i=0;i<a.length ;i++ )//重新遍历新数组。
{
System.out.print(a[i]+" ");
}
}
}
是这样吧?。