请通过代码实现以下功能:输入一个5X5的二维数组,将数组进行排序,其中一维数组按照平均值降序,一维数组内部升序排列。
2017-08-05 09:48
911 查看
输入一个5X5的二维数组,将数组进行排序,其中一维数组按照平均值降序,一维数组内部升序排列。
这个问题的要点在于平均值排序和数组每行排序的结合,当然这里也可以写一个简单的方法实现,这里只用了最基本的面向过程的知识,新手可借鉴。
1.遍历数组每一行,得到平均值
2.把平均值赋给一个数组
3.对该数组进行排序,得到角标
4.遍历数组从小到大输出每一行,且行数为之前得到的角标数
public static
void main(String[] args) {
int[][]
sz = { { 2, 5, 9, 5, 8 }, { 81, 89, 83, 86, 88 }, { 77, 78, 71, 73, 79 }, { 66, 65, 64, 66, 67 },
{ 96, 95, 99, 94, 93 } };
//平均值的五个数为一个数组
double[]paixu =
newdouble[5];
//平均值给依次给数组元素
double
sum = 0.0;
for (inti = 0;
i < sz.length;i++) {
sum = 0.0;
for (intj = 0;
j < sz[i].length;j++) {
sum =sum +
sz[i][j];
}
paixu[i] =sum;
}
//y拿到平均值最大的数,x拿到该数的角标,然后y值归零,以免影响第二次数值的比较
for (intk = 0;
k <= 4; k++) {
int
x = 0;
doubley =
paixu[k];
for (intl = 0;
l < 4; l++) {
doublea = 0;
if (paixu[l] <paixu[l + 1]) {
y =paixu[l + 1];
x =l + 1;
}
}
paixu[x] = 0;
//遍历数组的过程,排i的值为x
即按照平均值从大到小输出
int
i = x;
System.out.println();
for (intj = 0;
j < sz.length;j++) {
inta =
sz[i][j];
intb = 0;
if(i>=0 &&i<=4){
for (intm =
j; m <sz.length;
m++) {
if (a >sz[i][m]) {
b =a;
a =sz[i][m];
sz[i][m] =b;
}
}
}
System.out.print(a);
System.out.print(" ");
}
doubleavg =
sum / 5;
}
}
这个问题的要点在于平均值排序和数组每行排序的结合,当然这里也可以写一个简单的方法实现,这里只用了最基本的面向过程的知识,新手可借鉴。
1.遍历数组每一行,得到平均值
2.把平均值赋给一个数组
3.对该数组进行排序,得到角标
4.遍历数组从小到大输出每一行,且行数为之前得到的角标数
public static
void main(String[] args) {
int[][]
sz = { { 2, 5, 9, 5, 8 }, { 81, 89, 83, 86, 88 }, { 77, 78, 71, 73, 79 }, { 66, 65, 64, 66, 67 },
{ 96, 95, 99, 94, 93 } };
//平均值的五个数为一个数组
double[]paixu =
newdouble[5];
//平均值给依次给数组元素
double
sum = 0.0;
for (inti = 0;
i < sz.length;i++) {
sum = 0.0;
for (intj = 0;
j < sz[i].length;j++) {
sum =sum +
sz[i][j];
}
paixu[i] =sum;
}
//y拿到平均值最大的数,x拿到该数的角标,然后y值归零,以免影响第二次数值的比较
for (intk = 0;
k <= 4; k++) {
int
x = 0;
doubley =
paixu[k];
for (intl = 0;
l < 4; l++) {
doublea = 0;
if (paixu[l] <paixu[l + 1]) {
y =paixu[l + 1];
x =l + 1;
}
}
paixu[x] = 0;
//遍历数组的过程,排i的值为x
即按照平均值从大到小输出
int
i = x;
System.out.println();
for (intj = 0;
j < sz.length;j++) {
inta =
sz[i][j];
intb = 0;
if(i>=0 &&i<=4){
for (intm =
j; m <sz.length;
m++) {
if (a >sz[i][m]) {
b =a;
a =sz[i][m];
sz[i][m] =b;
}
}
}
System.out.print(a);
System.out.print(" ");
}
doubleavg =
sum / 5;
}
}
相关文章推荐
- 用面向对象解决:输入一个5X5的二维数组,将数组进行排序,其中一维数组按照平均值降序,一维数组内部升序排列
- 输入一个5X5的二维数组,将数组进行排序,其中一维数组按照平均值降序,一维数组内部升序排列。
- 输入一个5X5的二维数组,将数组进行排序,其中一维数组按照平均值降序,一维数组内部升序排列。
- 编写程序实现以下功能: 随机产生20个正整数存入数组a中,且每个数均在1000-9999之间(包含1000和9999)。对数组进行排序,要求按每个数的后三位的大小进行升序排列,然后取出满足此条
- c语言实现二维数组排序,一个4*5的数组,要求每行都进行升序排列,并求出每行的平均值。
- 输入整型数组和排序标识,对其元素按照升序或降序进行排序
- 输入整型数组和排序标识,对其元素按照升序或降序进行排序
- 输入整型数组和排序标识,对其元素按照升序或降序进行排序
- C语言链表中数组实现数据选择排序,升序、降序功能主要难点
- PHP实现在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
- 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。(Python实现)
- C语言链表中数组实现数据选择排序,升序、降序功能主要难点
- 输入整型数组和排序标识,对其元素按照升序或降序进行排序
- C# 数组按照升序排列并输出(分别用冒泡法,选择法,插入法进行排序)。
- 对数组中的对象进行升序以及降序的排序方法(其中对象类型是系统类型).
- 华为OJ——输入整型数组和排序标识,对其元素按照升序或降序进行排序
- 二、 请按要求对下面的Java代码进行测试。代码的功能是:用折半查找法在元素呈升序排列的数组中查找值为key的元素。
- 华为OJ——输入整型数组和排序标识,对其元素按照升序或降序进行排序
- 华为oj中级 输入整型数组和排序标识,对其元素按照升序或降序进行排序
- 输入整型数组和排序标识,对其元素按照升序或降序进行排序