概述
1.《找数组中最大值和最小值,以及他们的下标》
输入10个整数,放入一个数组中。并找出数组中最大值和最小值,以及他们的下标列表
输入要求
多组数据,每一组一行数据10个大于0的数,之间用空格隔开
输出要求
最大值 最大值下标列表
最小值 最小值下标列表
输入
1 2 3 4 5 1 2 3 4 5
输出
Max:5 at position: 4 9
Min:1 at position: 0 5
代码
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class main {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
while(sc.hasNextInt()){
List<Integer> min_list=new ArrayList<>();
List<Integer> max_list=new ArrayList<>();
int [] nums=new int[10];
for(int i=0;i<10;i++)
nums[i]=sc.nextInt();
int max=0,min=0;
for(int i=1;i<10;i++){
if(nums[i]>nums[max])
max=i;
if(nums[i]<nums[min])
min=i;
}
for(int i=0;i<10;i++){
if(nums[max]==nums[i])
max_list.add(i);
if(nums[min]==nums[i])
min_list.add(i);
}
System.out.print("Max:"+nums[max]+" at position:");
for(int i:max_list){
System.out.print(" "+i);
}
System.out.println();
System.out.print("Min:"+nums[min]+" at position:");
for(int i:min_list){
System.out.print(" "+i);
}
}
sc.close();
}
}
2.《最小值 最大值 均值》
给出10个数,请你设计3个方法分别来计算10个值得最小值,最大值,均值,方法如下
1.public static double min(double[] array)
2.public static double max(double[] array)
3.public static double average(double[] array)
输入要求
多组数据,每一组一行数据10个实数,之间用空格隔开
输出要求
先后输出最小值,最大值,平均值,之间用换行隔开,最后有换行!
每个结果统一保留两位小数!
输入
1 2.8 3.6 4 3.5 7 8 4 4 10
10 10 10 10 10 10 10 10 10 10
输出
1.00
10.00
4.79
10.00
10.00
10.00
代码
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class main {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
while(sc.hasNextInt()){
List<Integer> min_list=new ArrayList<>();
List<Integer> max_list=new ArrayList<>();
double[] nums=new double[10];
for(int i=0;i<10;i++)
nums[i]=sc.nextDouble();
System.out.println(String.format("%.2f", min(nums)));
System.out.println(String.format("%.2f", max(nums)));
System.out.println(String.format("%.2f", average(nums)));
}
sc.close();
}
public static double min(double[] array){
double min=Double.MAX_VALUE;
for(int i=0;i<array.length;i++){
if(array[i]<min)
min=array[i];
}
return min;
}
public static double max(double[] array){
double max=Double.MIN_VALUE;
for(int i=0;i<array.length;i++){
if(array[i]>max)
max=array[i];
}
return max;
}
public static double average(double[] array){
double avg=0;
for(int i=0;i<array.length;i++){
avg+=array[i];
}
return avg/(array.length*1.0);
}
}
3.《数值出现次数》
给你一组整数型数字,让你来统计里面每个数字出现的次数)
输入要求
多组数据,每一组数据有n(1<= n <=100)个空格隔开的整数Ni(0<=Ni<=100),当输入0时,表示该组数据输入结束。
输出要求
每一行输出每个数字的出现次数
输入
10 100 100 2 3 1 10 3 7 8 0
输出
1 occurs 1 time
2 occurs 1 time
3 occurs 2 times
7 occurs 1 time
8 occurs 1 time
10 occurs 2 times
100 occurs 2 times
代码
import java.util.*;
public class main {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
while(sc.hasNextInt()){
int [] res=new int[101];
List<Integer> nums=new ArrayList<>();
for(;;){
int num=sc.nextInt();
if(num==0)
break;
nums.add(num);
}
for(int i:nums)
res[i]++;
for(int i=0;i<=100;i++){
if(res[i]==1)
System.out.println(i+" occurs "+res[i]+" time");
else if(res[i]>1)
System.out.println(i+" occurs "+res[i]+" times");
else
continue;
}
}
sc.close();
}
}
4.《数组顺移》
将数组的元素除第后一个元素外,所有元素后移一位,最后一位元素移动到第一位。
按格式输出源数组(输入的数据)和后移后的数组
参考方法:
/*
* 最后一名到第一位,其他的都后退一位
* @param a
* @return
*/
public static int[] shiftBackward(int[] a)
/*
* 按格式输出一个数组
* @param a 输出的数组
* @param numberOfRow 每行元素个数
* @param spliter 分隔字符
*/
public static void printArray(int[] a , int numberOfRow,String spliter )
输入要求
多组数据,每一组一行数据10个整数,之间用空格隔开
输出要求
源数组每行输出5个元素,并且以字符#分隔
后一位的数组每行输出4个元素,并且以*分隔
输入
1 2 3 4 5 6 7 8 9 10
输出
1#2#3#4#5
6#7#8#9#10
10123
4567
8*9
代码
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class main {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
while(sc.hasNextInt()){
int [] nums=new int[10];
for(int i=0;i<10;i++)
nums[i]=sc.nextInt();
printArray(nums,5,"#");
int num=nums[nums.length-1];
for(int i=nums.length-2;i>=0;i--){
nums[i+1]=nums[i];
}
nums[0]=num;
printArray(nums,4,"*");
}
sc.close();
}
private static void printArray(int[] nums, int row, String s) {
for(int i=0;i<nums.length;i+=row){
for(int j=i;j<nums.length&&j<i+row;j++){
if(j<row+i-1&&j<nums.length-1)
System.out.print(nums[j]+s);
else{
System.out.println(nums[j]);
}
}
}
}
}
最后
以上就是背后口红为你收集整理的《Java程序设计》课程代码题(四)的全部内容,希望文章能够帮你解决《Java程序设计》课程代码题(四)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复