- 输入一组数据(10个数据),找出最大值(并给出最大值所在的位置),并输出。
进一步思考:若要求同时求出最大值、最小值,如何设计程序?
package draft_1;
import java.util.Scanner;
//输入一组数据(10个数据),找出最大值(并给出最大值所在的位置),并输出
public class Text {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int n;
double a[];
n = cin.nextInt();
a = new double[n];
for (int i =0; i<n; i++) {
a[i] = cin.nextInt();
}
max(a,n);
min(a,n);
}
public static void max(double a[],int n) {
double temp = a[0];
int location = 0;
for(int i = 0; i<n; i++) {
if(temp<a[i]) {
temp = a[i];
location = i;
}
}
System.out.println(temp+" "+(location+1));
}
public static void min(double a[],int n) {
double temp = a[0];
int location = 0;
for(int i = 0; i<n; i++) {
if(temp>a[i]) {
temp = a[i];
location = i;
}
}
System.out.println(temp+" "+(location+1));
}
}
- 产生10个整数放到数组中,将其顺序颠倒后输出
package draft_1;
import java.util.Scanner;
//产生10个整数放到数组中,将其顺序颠倒后输出
public class Text {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int n;
int a[];
n = cin.nextInt();
a = new int[n];
for (int i = 0; i<n; i++) {
a[i] = (int) (Math.random()*100);
}
for(int i = 0; i<n; i++) {
System.out.print(a[i]+" ");
}
System.out.println();
for(int i = n-1; i>=0; i--) {
System.out.print(a[i]+" ");
}
}
}
- 用数组来处理,求解Fibonacci数列的前20项,并输出,一行5个数据。
package draft_1;
//用数组来处理,求解Fibonacci数列的前20项,并输出,一行5个数据
public class Text {
public static void main(String[] args) {
int a[] = new int[20];
a[0] = 0;
a[1] = 1;
for(int i = 2; i<20; i++) {
a[i] = a[i-1]+a[i-2];
}
for(int i = 0; i<20; i++) {
System.out.print(a[i]+" ");
if((i+1)%5==0)
System.out.println();
}
}
}
- 定义一个数组,输出数组中高于平均值的元素。
package draft_1;
//定义一个数组,输出数组中高于平均值的元素
public class Text {
public static void main(String[] args) {
int a[] = new int[10];
for(int i = 0; i<10; i++) {
a[i] = (int)(Math.random()*100);
}
MoerAverage(a, Average(a));
}
public static float Average(int a[]) {
int sum = 0;
float average;
for (int i = 0; i<a.length; i++) {
sum = sum+a[i];
}
average = sum/a.length;
return average;
}
public static void MoerAverage(int a[], float b) {
float average = b;
System.out.println("平均值:"+Average(a));
for (int i = 0; i < 10; i++) {
if (a[i]>average) {
System.out.println(a[i]);
}
}
}
}
- 分别形成下面数组并输出。
package draft_1;
//打印数组图形
public class Text {
public static void main(String[] args) {
int a[][] = new int[5][5];
a[0][0] = 6;
for(int i = 1; i<5; i++) {
a[i] = new int[i+1];
a[i][i] = (i+1)*a[0][0];
for(int j = i-1; j>=0; j--){
a[i][j] = a[i][i]-(i-j);
}
}
for(int i = 0; i<5; i++) {
for(int j = 0; j<i+1; j++)
System.out.print(a[i][j]+" ");
System.out.println();
}
}
}
- 求二维数组中最大元素及其所在的行和列位置。
package draft_1;
//求二维数组中最大元素及其所在的行和列位置
public class Text {
public static void main(String[] args) {
int a[][] = new int[4][4];
for (int i = 0; i<4; i++) {
for(int j = 0; j<4; j++) {
a[i][j] = (int)(Math.random()*100);
}
}
Print(a);
Max(a);
}
public static void Print(int a[][]) {
for (int i = 0; i<a.length; i++) {
for(int j = 0; j<a[i].length; j++) {
System.out.print(a[i][j]+" ");
}
System.out.println();
}
}
public static void Max(int a[][]) {
int max,q,s = 0,t = 0;
max = a[0][0];
for(int i = 0; i<a.length; i++) {
for(int j = 0; j<a[i].length; j++) {
if(a[i][j]>max) {
q = max;
max = a[i][j];
a[i][j] = q;
s = i;
t = j;
}
}
}
System.out.println("最大值:"+max+" 行:"+(s+1)+" 列:"+(t+1));
}
}
- 将一个二维数组行和列元素互换,存到另一个二维数组中。
package draft_1;
//将一个二维数组行和列元素互换,存到另一个二维数组中
public class Text {
public static void main(String[] args) {
int a[][] = new int[4][4];
for (int i = 0; i<4; i++) {
for(int j = 0; j<4; j++) {
a[i][j] = (int)(Math.random()*100);
}
}
int b[][] = new int[4][4];
Print(a);
Exchange(a,b);
Print(b);
}
public static void Print(int a[][]){
for (int i = 0; i<a.length; i++) {
for(int j = 0; j<a[i].length; j++){
System.out.print(a[i][j]+" ");
}
System.out.println();
}
System.out.println();
}
public static void Exchange(int a[][],int b[][]){
int q;
for (int i = 0; i<a.length; i++) {
for(int j = i; j<a[i].length; j++){
q = a[i][j];
b[i][j] = a[j][i];
b[j][i] = q;
}
}
}
}
- 设计程序,生成杨辉三角形(利用数组)
package draft_1;
//设计程序,生成杨辉三角形(利用数组)
public class Text {
public static void main(String[] args) {
int a[][] = new int[8][8];
a[0][0] = 1;
a[1][0] = 1;
a[1][1] = 1;
for(int i = 2; i<8; i++) {
a[i] = new int[i+1];
a[i][i] = 1;
for(int j = 1; j<i; j++) {
a[i][0] = 1;
a[i][j] = a[i-1][j]+a[i-1][j-1];
}
}
for(int i = 0; i<8; i++) {
for(int j = 0; j<i+1; j++)
System.out.print(a[i][j]+" ");
System.out.println();
}
}
}
- 通过键盘输入任意的10个数,按升序排序,并输出排序结果。
package draft_1;
//通过键盘输入任意的10个数,按升序排序,并输出排序结果
public class Text {
public static void main(String[] args) {
int a[] = new int[10];
for (int i = 0; i<10; i++) {
a[i] = (int)(Math.random()*100);
}
Print(a);
Sort(a);
Print(a);
}
public static void Sort(int a[]) {
int s;
for (int i = 0; i<a.length; i++) {
for(int j = 0; j<a.length; j++) {
if(a[i]<=a[j]){
s = a[i];
a[i] = a[j];
a[j] = s;
}
}
}
}
public static void Print(int a[]) {
for (int i = 0; i<a.length; i++) {
System.out.print(a[i]+" ");
}
System.out.println();
}
}
- 有N个数据,存放在数组A中,现输入一个数据x,在数组A中查找数据x是否存在,如果存在,则输出第一次出现的位置号,否则,输出-1。
package draft_1;
import java.util.Scanner;
/*有N个数据,存放在数组A中,现输入一个数据x,在数组A中查找数
据x是否存在,如果存在,则输出第一次出现的位置号,否则,输出-1*/
public class Text {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int[] a = new int[10];
for (int i = 0; i<10; i++) {
a[i] = (int)(Math.random()*100);
}
Print(a);
int x = cin.nextInt();
Shor(a,x);
}
public static void Shor(int a[],int x){
int s = 0,count = 0;;
for (int i = 0; i<a.length; i++) {
if(a[i]==x){
s = i;
break;
}
else count++;
}
if(count>=a.length)
System.out.println("-1");
else
System.out.println(s+1);
}
public static void Print(int a[]) {
for (int i = 0; i<a.length; i++) {
System.out.print(a[i] + " ");
}
System.out.println();
}
}
- 输入10个数,并按有小到大排序输出,然后再输入一个数据,插入已排好序的数组中,插入后仍然是有小到大排序。
package draft_1;
import java.util.Scanner;
//选择排序
public class Text {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int[] a = new int[10];
for (int i = 0; i<10; i++) {
a[i] = (int)(Math.random()*100);
}
Sort(a);
Print(a);
int y = cin.nextInt();
Print(Insert(a,y));
}
public static void Sort(int a[]) {
int s;
for (int i = 0; i<a.length; i++) {
for(int j = 0; j<a.length-1; j++) {
if(a[j]>=a[j+1]) {
s = a[j+1];
a[j+1] = a[j];
a[j] = s;
}
}
}
}
public static int[] Insert(int a[],int x) {
int[] b = new int[a.length+1];
int i = 0,j = 0,t = 0;
if(x<=a[0]) {
b[0] = x;
for(i = 1; i<b.length; i++)
b[i] = a[i-1];
}
else if(x>=a[a.length-1]) {
for(i = 0; i<b.length-1; i++)
b[i] = a[i];
b[b.length-1] = x;
}
else {
while(a[i]<x)
i++;
for(j = 0; j<i; j++)
b[j] = a[j];
b[i] = x;
for(j = i; j<b.length-1; j++)
b[j+1] = a[j];
}
return b;
}
public static void Print(int a[]) {
for (int i = 0; i<a.length; i++) {
System.out.print(a[i] + " ");
}
System.out.println();
}
}
- 选择排序
package draft_1;
import java.util.Scanner;
//选择排序
public class Text {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int[] a = new int[10];
for (int i = 0; i<10; i++) {
a[i] = (int)(Math.random()*100);
}
Sort(a);
Print(a);
}
public static void Sort(int a[]) {
int s;
for (int i = 0; i<a.length; i++) {
for(int j = i+1; j<a.length; j++) {
if(a[i]>=a[j]) {
s = a[i];
a[i] = a[j];
a[j] = s;
}
}
}
}
public static void Print(int a[]) {
for (int i = 0; i<a.length; i++) {
System.out.print(a[i] + " ");
}
System.out.println();
}
}
- 冒泡排序
package draft_1;
import java.util.Scanner;
//冒泡排序
public class Text {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int[] a = new int[10];
for (int i = 0; i<10; i++) {
a[i] = (int)(Math.random()*100);
}
Sort(a);
Print(a);
}
public static void Sort(int a[]) {
int s;
for (int i = 0; i<a.length; i++) {
for(int j = 0; j<a.length-1; j++) {
if(a[j]>=a[j+1]) {
s = a[j+1];
a[j+1] = a[j];
a[j] = s;
}
}
}
}
public static void Print(int a[]) {
for (int i = 0; i<a.length; i++) {
System.out.print(a[i] + " ");
}
System.out.println();
}
}
综合题:
体操运动员参加自由体操决赛,有10个评委为他们打分。选手的成绩计算方法是:10个评委分数中,去掉一个最高分和一个最低分,余下分数的平均值为选手的最后得分。假设有20名选手。要求,计算出每个选手的成绩,并给出名次,输出格式如下:
名次 姓名 评委成绩1(10个成绩依次列出) 最终得分
在这里插入代码片package draft_1;
import java.util.Scanner;
//体操
public class Text {
public static void main(String[] args) {
Print a = new Print();
a.Average();
a.shu();
a.cout();
}
}
class Print {
private int[] name = new int[20];
private int[][] score = new int[20][10];
private int[] ave = new int[20];
public Print() {
for (int i = 0; i<20; i++) {
name[i] = i+1;
for (int j = 0; j<10; j++)
score[i][j] = (int)(60+Math.random()*40);
}
}
public int[] Average() {
for(int i = 0; i<20; i++) {
int s = 0;
for(int j = 0; j<10; j++) {
s = s+score[i][j];
}
ave[i] = (s-max(i)-min(i))/8;
}
return ave;
}
public int max(int i) {
int max = score[i][0];
for(int j = 0; j<10; j++) {
if(max<score[i][j])
max = score[i][j];
}
return max;
}
public int min(int i) {
int min = score[i][0];
for(int j = 0; j<10; j++) {
if(min>score[i][j])
min = score[i][j];
}
return min;
}
public void shu(){
int s = 0;
for(int i = 0; i<20; i++) {
for(int j = i+1; j<20; j++) {
if(ave[i]<ave[j]){
s = ave[j];
ave[j] = ave[i];
ave[i] = s;
s = name[j];
name[j] = name[i];
name[i] = s;
for(int k = 0; k<10; k++) {
s = score[j][k];
score[j][k] = score[i][k];
score[i][k] = s;
}
}
}
}
}
public void cout() {
System.out.print("名次"+"\t选手"+"\t");
for(int k = 0; k<10; k++)
System.out.print("评委"+(k+1)+"\t");
System.out.print("最终得分"+"\t");
System.out.print("\n");
for(int i = 0; i<20; i++) {
System.out.print((i+1)+"\t选手"+name[i]+"\t");
for (int j = 0; j<10; j++)
System.out.print(score[i][j]+"\t");
System.out.print(ave[i]+"\t");
System.out.print("\n");
}
}
}