(1) 編寫一個程序,生成一個10*10的二維隨機整數數組,並將該數組的每行最大值保存於一個一維數組中,將每列平均值保存於另外一個一維數組中並分別輸出。
(2) 編程輸出楊輝三角的前10行。
找出一個,即該位置上的元素在該行上最大,在該列上最小(注:一個二維數組也可能沒有這樣的鞍點)。
/**
*
* @author liuhui
*@version Java上機實驗三
*@time 2016.10.30
*/
public class javatest2 {
public static int line = 0,row = 0;
public static void main(String[] args) { //主函數
int b[][] = array();
int c[] = linearArray(b);
double d[] = average(b);
printArrayOne(b);
System.out.println();
printArrayTwo(c);
System.out.println();
printArrayTwo(d);
System.out.println();
triangle aTriangle = new triangle();
aTriangle.print();
int f[] = saddle(b, c);
for(int i=0;i<f.length;i++)
{
if(f[i]==-1)
break;
else
System.out.print(f[i]+" ");
}
}
public static int[][] array() //獲得隨機二維數組
{
int a[][] = new int[10][10];
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
int r = (int) (Math.random()*10);
a[i][j] = r;
}
}
return a;
}
public static void printArrayOne(int a[][]) //打印二維數組
{
for(int i=0;i<10;i++)
{
System.out.println();
for(int j=0;j<10;j++)
{
System.out.print(a[i][j]);
System.out.print(" ");
}
}
System.out.println();
}
public static void printArrayTwo(int a[]) //打印一維數組
{
for(int i=0;i<10;i++)
{
System.out.print(a[i]+" ");
}
}
public static void printArrayTwo(double a[])
{
for(int i=0;i<10;i++)
{
System.out.print(a[i]+" ");
}
}
public static int[] linearArray(int a[][]) //求每行數組的最大值
{
int max = 0;
int b[] = new int[10];
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
if(max<a[i][j])
{
max = a[i][j];
line = i;
row = j;
}
}
b[i] = max;
max = 0;
}
return b;
}
public static double[] average(int a[][]) //求每列數組的平均數
{
double b[] = new double[10];
double sum = 0.0;
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
sum = sum +a[i][j];
}
b[i] = sum/10;
sum = 0.0;
}
return b;
}
public static int []saddle(int a[][],int b[]) //判斷鞍點
{
int c[] = new int [10];
int m = 0;
boolean k = true;
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
if(b[i]>a[j][row])
{
k = false;
break;
}
}
if(k==true)
{
c[m] = b[i];
m++;
}
}
if(k==false)
{
System.out.println("沒有鞍點");
c[0] = -1;
}
return c;
}
}
class triangle{ //做楊輝三角
public void print()
{
int b[][] = new int[10][];
for(int i=0;i<10;i++)
b[i] = new int[i+1];
for(int i=0;i<10;i++)
{
for(int j=0;j<b[i].length;j++)
{
if(i==0||j==0||j==b[i].length-1)
b[i][j] = 1;
else
b[i][j] = b[i-1][j-1] + b[i-1][j];
}
}
for(int i=0;i<10;i++)
{
for(int k=9-i;k>=1;k--)
System.out.print(" ");
for(int j=0;j<i+1;j++)
{
System.out.print(b[i][j]+" ");
}
System.out.println();
}
}
}