java从小白开始的练习(四,数组)
Posted 韶光不负
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java从小白开始的练习(四,数组)相关的知识,希望对你有一定的参考价值。
请输入10位同学的java成绩,1、求平均成绩,最高成绩、最低成绩?2、对10的成绩按照从低到高的顺序排列
1,取平均值,最大值最小值。
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
int arr[]=new int[10];
Scanner sc = new Scanner(System.in);
//输入成绩
int max=0,min=0,sum=0;
for(int i=0;i<=9;i++){
System.out.println("请输入第"+(i+1)+"java同学成绩:");
int number=sc.nextInt();
arr[i]=number;
sum+=arr[i];
//比较大写
if(i==0){
max=arr[i];
min=arr[i];
}else {
if(max<arr[i]){
max=arr[i];
}
if(min>arr[i]){
min=arr[i];
}
}
}
System.out.println("平均成绩:"+(sum/arr.length));
System.out.println("最大值为:"+max);
System.out.println("最小值为:"+min);
}
}
2,排序
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
int arr[]=new int[]{12,20,80,96,54,32,50,64,32,60};
// Scanner sc = new Scanner(System.in);
// //输入成绩
// int max=0,min=0,sum=0;
// for(int i=0;i<=9;i++) {
// System.out.println("请输入第" + (i + 1) + "java同学成绩:");
// int number = sc.nextInt();
// arr[i] = number;
// }
int sort[] =bubble_sort(arr);
for(int i=0;i<sort.length-1;i++){
System.out.print(sort[i]+" ");
}
}
public static int[] bubble_sort(int arr[]){
//冒泡排序
for(int i =0;i<arr.length-1;i++){
//遍历次数
for(int j=0;j<arr.length-1-i;j++){
//获取下标比较,按升序排列
if(arr[j]>arr[j+1]){
int num=0;//存储交换值
//交换
num=arr[j];
arr[j]=arr[j+1];
arr[j+1]=num;
}
}
}
return arr;
}
}
选择排序
public static int[] selection_sort(int arr[]){
//选择排序
for(int i =0;i<arr.length-1;i++){
//遍历次数
int min=i;//假设第一个最小
for(int j=i+1;j<arr.length-1;j++){
//获取下标比较,按升序排列
if(arr[j]<arr[min]){
min=j;
int num=0;//存储交换值
//交换
num=arr[i];
arr[i]=arr[min];
arr[min]=num;
}
}
}
return arr;
}
插入:
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
int arr[]=new int[]{12,20,80,96,54,32,50,64,32,60};
int sort[] =insert_sort(arr);
for(int i=0;i<sort.length-1;i++){
System.out.print(sort[i]+" ");
}
}
public static int[] insert_sort(int arr[]){
//插入排序
for(int i =1;i<arr.length-1;i++) {
int tmp=arr[i];
int j =i-1;//插入下标
while (arr[j]>tmp && j>=0){
arr[j+1]=arr[j];
j--;
}
arr[j+1]=tmp;
}
return arr;
}
}
给定一个数组,判断某个元素是否在该数组中
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
int arr[] = new int[]{12, 20, 80, 96, 54, 32, 50, 64, 32, 60};
System.out.println("请输入元素:(数字)");
int val=sc.nextInt();
int tmp=judge(val,arr);
if(tmp==1){
System.out.println("存在");
}else {
System.out.println("不存在");
}
sc.close();//给你流
}
public static int judge(int val,int arr[]){
int tmp=0;
for(int i=0;i<arr.length;i++){
if (val==arr[i]){
tmp=1;
}
}
return tmp;
}
}
给定一个数组,大小为10,输入十个同学的成绩,求这些成绩的总分数,某一天转入2个新同学,请再次求12个同学的平均成绩(尝试着使用扩容的形式做)
public class Test {
public static void main(String[] args) {
int student[]=new int[]{13,25,6,575,82,42,4,5,1,10};
int sum=0;
student=add(student.length+2,student);
student[student.length-1]=100;
student[student.length-2]=100;
for(int i =0;i<student.length;i++){
sum+=student[i];
}
System.out.println("总分数为:"+sum);
}
public static int[] add(int newlen,int arr[]){
int sort[] =new int[newlen];
for(int i =0;i<arr.length;i++){
sort[i]=arr[i];
}
return sort;
}
}
有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币{10, 8, 5, 3, 27, 99}
public class Test {
public static void main(String[] args) {
int arr[]=new int[]{10,8,5,3,27,99};
double count=0;
for(int i=0;i<arr.length;i++){
count=silver(arr[i]);
System.out.println(arr[i]+"硬币: "+"一共"+count+"次");
}
}
public static int silver(int number){
int count=1;
if(number==2||number==1){
count+=1;
}else {
while (number>2){
number=number-2;
count++;
}
}
return count;
}
}
将数组中的重复数据去重
public class Test {
public static void main(String[] args) {
int arr[]=new int[]{10,8,5,3,27,99,3,5,7,8,10};
int sort[]=new int[arr.length];
for(int i=0;i<arr.length;i++){
boolean repeat=true;
for (int j=0;j<arr.length-i-1;j++){
if(arr[i] == arr[j]){
repeat=false;
}
}
if(repeat){
sort[i]=arr[i];
}
}
for(int i=0;i<sort.length;i++){
System.out.print(sort[i]+" ");
}
}
}
如何将10个0-10随机存入数组中
import java.util.Random;
public class Test {
public static void main(String[] args) {
int arr[]=new int[100];
Random random_num =new Random();
for (int i=0;i<arr.length;i++){
int ran=random_num.nextInt(11);
arr[i]=ran;
}
for (int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
}
}
(选做题)
某个人进入如下一个棋盘中,要求从左上角开始走,
最后从右下角出来(要求只能前进,不能后退),
问题:共有多少种走法?
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入行数:");
int x=sc.nextInt();
System.out.println("请输入列数:");
int y=sc.nextInt();
int count=run(x,y);
System.out.println("方法总共有"+count+"种");
}
public static int run(int x,int y){
int count=0;
while (x>0&&y>0){
if(x==1){
count++;
x=0;
}else if(y==1){
count++;
y=0;
}else {
count=run(x-1,y)+run(x,y-1);
break;
}
}
return count;
}
}
以上是关于java从小白开始的练习(四,数组)的主要内容,如果未能解决你的问题,请参考以下文章