- 求一维数组中10个数的最大数以及排序后的数组。
(数组中的数随机生成)
public class Array1 {
public static void main(String args[]) {
int score[] = new int[10];
for (int k = 0; k < score.length; k++) {
score[k] = (int) (Math.random() * 101);
System.out.print(score[k] + " ");
}
/* 求最大数并排序 */
int m = 0;
for (int k = 0; k < score.length; k++) {
for (int j = 0; j < score.length; j++) {
if (score[k] < score[j]) {
int temp = score[k];
score[k] = score[j];
score[j] = temp;
}
}
m = score[k];
}
System.out.println("\n" + "最大数" + m);
/* 排序后的数组 */
for (int k = 0; k < score.length; k++) {
System.out.print(score[k] + " ");
}
}
}
Arrays类的sort方法可实现快速排序
java.util.Arrays.sort(score);
- 编写一个求阶乘的方法,并利用此方法实现一个求组合的方法,输出如下形式。
c(0,0)
c(1,0) c(1,1)
c(2,0) c(2,1) c(2,2)
c(3,0) c(3,1) c(3,2) c(3,3)
public class Aarry2 {
/*求阶乘*/
public static long fac(int n) {
int res=1;
for(int i=2;i<=n;i++)
res=res*i;
return res;
}
/*求组合*/
public static long com(int n,int m) {
long res=0;
res=fac(n)/(fac(n-m)*fac(m));
return res;
}
public static void main(String args[]) {
for(int n=0;n<=3;n++) {
for(int m=0;m<=n;m++) {
System.out.print(com(n,m)+" ");
}
System.out.println();
}
}
}
附python求阶乘
- 利用(二维)数组保存数据,输出杨辉三角形前5行。
public class Aarry3 {
public static int arr(int i,int j) {
int r=1;
int res[][]=new int[5][];
for(int n=0;n<res.length;n++) {
res[n]=new int[n+1];
res[n][0]=1;//首列与尾列都为1
res[n][n]=1;
}
for(int n=2;n<5;n++) {
for(int m=1;m<n;m++) {
res[n][m]=res[n-1][m]+res[n-1][m-1]; //把杨辉三角形放入数组
if(i==n&&j==m) { //如果与需要输出的行和列相同,输出并结束此次循环
r=res[n][m];
break;
}
}
}
return r;
}
public static void main(String args[]) {
for(int n=0;n<5;n++) {
for(int k=4;k>=n;k--) { //打印空格,因为输出最多5列,所以首行前至少有4个空格
System.out.print(" ");
}
for(int m=0;m<=n;m++) { //二重循环遍历定位并调用方法
System.out.print(arr(n,m)+" ");
}
System.out.println();
}
}
}
- 输入一个班的成绩到一维数组中,求最高分、平均成绩,并统计各分段的人数。其中分数段有不及格(<60)、及格(60-69)、中等(70-79)、良好(80~89)、优秀(>90)。
import javax.swing.JOptionPane;
public class ArrayTest {
public static void main(String args[]){
int n=Integer.parseInt(JOptionPane.showInputDialog("请输入班级人数:"));
int a[]=new int[n];
System.out.print("你输入的成绩为:");
for(int i=0;i<a.length;i++) {
int g=Integer.parseInt(JOptionPane.showInputDialog("请输入成绩:"));
a[i]=g;
System.out.print(g+" ");
}
System.out.println();
/*最高成绩*/
int hight=a[0];
for(int i=0;i<a.length;i++) {
if(hight<a[i]) {
hight=a[i];
}
}
System.out.println("最高分为:"+hight);
/*平均成绩*/
int sum=0;
for(int i=0;i<a.length;i++) {
sum=sum+a[i];
}
System.out.println("平均成绩为"+sum/a.length);
/*统计各分段人数*/
int A=0,B=0,C=0,D=0,E=0;
for(int i=0;i<a.length;i++) {
int f=a[i]/10;
if(f<5) {
f=5;
}
else if(f>=10) {
f=9;
}
switch(f) {
case 5:E++;break;
case 6:D++;break;
case 7:C++;break;
case 8:B++;break;
case 9:A++;break;
}
}
System.out.print("不及格人数"+E
+"\n"+"及格人数:"+D
+"\n"+"中等人数:"+C
+"\n"+"良好人数:"+B
+"\n"+"优秀人数:"+A);
}
}
- 编写一个方法求3个数中的最大值,并调用该方法从命令行参数中获得任意3个整数中的最大者。
public class ArgsMaxNum {
public static void main(String[] args) {
int x=Integer.parseInt(args[0]);
int y=Integer.parseInt(args[1]);
int z=Integer.parseInt(args[2]);
System.out.print("最大数为:"+MaxNum(x, y, z));
}
public static int MaxNum(int x,int y, int z) {
int m=x;
if(m<y)
m=y;
if(m<z)
m=z;
return m;
}
}