【实验九】
1、按行输出数组中全部的元素,int a[][]={{8,1},{3,5,7,3},{4,9,2}}。
public class Nine1 {
public static void main(String[] args) {
int a[][]= {{8,1},{3,5,7,3},{4,9,2}};
for(int i =0;i<a.length;i++) {
for(int j =0;j<a[i].length;j++)
System.out.print(a[i][j]+"\t");
System.out.println();
}
}
}
2、将二维数组a进行转置,不借助别的数组实现。
public class Nine2 {
public static void main(String[] args) {
int a[][] = {{1,2,3},{4,5,6},{7,8,9}};
for(int c=0;c<a.length;c++)
for(int x=0;x<c;x++) {
int t=a[c][x];
a[c][x]=a[x][c];
a[x][c]=t;
}
print(a);
}
static void print(int b[][]) {
for(int i=0;i<b.length;i++) {
for(int j=0;j<b[i].length;j++)
System.out.print(b[i][j]+"\t");
System.out.println();
}
}
}
3、数组a中保存着一个33的矩阵,请把主对角线上的元素输出。*
public class Nine3 {
public static void main(String[] args) {
int a[][] = {{1,2,3},{4,5,6},{7,8,9}};
for(int i=0;i<a.length;i++)
for(int j=0;j<a[i].length;j++) {
if(i==j)
System.out.print(a[i][j]+"\t");
}
}
}
4、某年级三个班的Java考试成绩如下表所示,请采用二维数组保存这些数据,并分析:
(1) 全年级Java的平均分;
(2) 求每个班的平均分。
1班 99 68 97
2班 89 95 88 59 64
3班 89 79 99 58
4班 59 79 85 63 72
public class Nine4 {
public static void main(String[] args) {
int a[][] = {{99,68,97},{89,95,88,59,64},{89,79,99,58},{59,79,85,63,72}};
int sum=0,n=0;
for(int i=0;i<a.length;i++) {
for(int j=0;j<a[i].length;j++)
sum+=a[i][j];
n+=a[i].length;
}
System.out.println("平均分"+sum/n);
for(int i=0;i<a.length;i++) {
int sum1=0;
for(int j=0;j<a[i].length;j++)
sum1+=a[i][j];
System.out.println((i+1)+"班的平均成绩"+sum1/a[i].length);
}
}
}
5、显示杨辉三角形的前10行。
import java.util.Scanner;
public class Nine5 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("行数");
int n=in.nextInt();
int a[][]=new int [n][];
for(int i=0;i<n;i++)
a[i]=new int[i+1];
for(int i=0;i<n;i++) {
a[i][0]=1;
a[i][i]=1;
}
for(int i=2;i<n;i++)
for(int j=1;j<i;j++)
a[i][j]=a[i-1][j]+a[i-1][j-1];
print(a);
}
static void print(int b[][]) {
for(int i=0;i<b.length;i++) {
for(int j=0;j<b[i].length;j++)
System.out.print(b[i][j]+"\t");
System.out.println();
}
}
}
扩展题:请分析1班、2班哪个班的考试成绩哪个班考得好?(计算每个班的平均成绩和方差)
1班 89 95 88 59 64
2班 89 79 90 58
public class Ninet {
public static void main(String[] args) {
int a[][]= {{89,95,88,59,64},{89,79,90,58}};
for(int i=0;i<a.length;i++) {
int j;
double sum=0,sum1=0,count=0;
for(j=0;j<a[i].length;j++) //平均分
sum+=a[i][j];
double m=(double)sum/a[i].length;
for(int t=0;t<a[i].length;t++) {
if(a[i][t]>m)
sum1=(a[i][t]-m)*(a[i][t]-m);
else
sum1=-(a[i][t]-m)*-(a[i][t]-m);
count+=sum1;
}
System.out.println((i+1)+"班的平均成绩"+sum/a[i].length);
System.out.println((i+1)+"班的方差"+count/a[i].length);
}
}
}