JAVA day04代码作业(测评题)

1.输入1到100之间的任意整数,然后计算这些整数中每个数出现的次数。

例如

输入

2,20,32,18,

输出

0---->1次,1---->1次,2---->3次,3---->1次,8---->1次

//数组作用储存数字个数的二维数组:[0-9][数字个数]
int[][] arr =new int[10][2];
for(int i=0;i<10;i++){
	arr[i][0]=i;
}
//储存用户输入的数字
int[] numArr=new int[0];
//开始让用户输入
System.out.println("请输入1到100之间的任意整数(输入-1结束):");
while(true){
	Scanner sc= new Scanner(System.in);
	int num=sc.nextInt();
	if(num==-1){
		break;
	}
	numArr=Arrays.copyOf(numArr,numArr.length+1);
	numArr[numArr.length-1]=num;
}
//开始计算各个数字,储存在数字个数的二维数组
int ge=-1;//个位数
int shi=-1;//十位数
for (int i = 0; i < numArr.length; i++) {
	ge=numArr[i]%10;
	if(numArr[i]>10){
		shi=numArr[i]/10;
	}
	for (int j = 0; j < arr.length; j++) {
		if(ge==arr[j][0]){
			arr[j][1]++;
		}
		if(shi==arr[j][0]){
			arr[j][1]++;
		}
	}
}
//将储存在数字个数的二维数组中,不为零的数输出
System.out.println("整数中每个数出现的次数:");
for (int i = 0; i < arr.length; i++) {
	if(arr[i][1]!=0){
		System.out.println(arr[i][0]+"---->"+arr[i][1]+"次");
	}
}

2.输入10个个位整数,去掉重复数字,并由大到小排序

int[] numArr=new int[10];//用户输入数字
int chongFu=0;//数字重复的个数
Scanner sc=new Scanner(System.in);
for (int i = 0; i < 10; i++) {
	System.out.println("请输入第"+(i+1)+"个数字:");
	numArr[i]=sc.nextInt();
}
Arrays.sort(numArr);//排序,从小到大
//对排序后的数组相邻两个,依次比较,有一样的就把前一个变成10,并把数字重复的个数+1
for (int i = 0; i < numArr.length-1; i++) {
	if(numArr[i]==numArr[i+1]){
		numArr[i]=10;
		chongFu++;
	}
}
//再次从小到大排序,此时重复的已经变成10了,10的个数为chongFu,
Arrays.sort(numArr);
//把10-chongFu定义成新数组,将老数组不重复的值遍历过去
int[] numArr2=new int[10-chongFu];
for (int i = 0; i < numArr2.length; i++) {
	numArr2[i]=numArr[i];
}
System.out.println(Arrays.toString(numArr2));

3.有两个整数型数组,长度相同,输入数组各项,完成输入后,判断两个数组的每个数组位置的值是否相同,如果都相同,则输出true,反之则输出false

//储存用户输入的数字
int[] numArr=new int[0];
//开始让用户输入
System.out.println("两个整数型数组,长度相同,请输入第一个数组各项(输入-1结束):");
while(true){
	Scanner sc= new Scanner(System.in);
	int num=sc.nextInt();
	if(num==-1){
		break;
	}
	numArr=Arrays.copyOf(numArr,numArr.length+1);
	numArr[numArr.length-1]=num;
}
//储存用户输入的数字2
int[] numArr2=new int[numArr.length];
//开始让用户输入
System.out.println("请按照刚才的长度"+numArr.length+",输入第二个数组各项:");
for (int i = 0; i < numArr.length; i++) {
	Scanner sc= new Scanner(System.in);
	int num=sc.nextInt();
	numArr2[i]=num;
}
System.out.println("结束输入");
//开始判断两个数组的每个数组位置的值是否相同
boolean jieGuo=true;
for (int i = 0; i < numArr.length; i++) {
	if(numArr[i]!=numArr2[i]){
		jieGuo=false;
		break;
	}
}
System.out.println(jieGuo);

4.手动输入一个长度为10的数组,判断数组中是否存在四个连续相等的数值,如果存在则输出true,反之输出false

//储存用户输入的数字
int[] numArr=new int[10];
//开始让用户输入
System.out.println("手动输入一个长度为10的数组:");
for (int i = 0; i < 10; i++) {
	Scanner sc= new Scanner(System.in);
	int num=sc.nextInt();
	numArr[i]=num;
}
//开始判断数组是否存在四个连续相等的数值
//对排序后的数组相邻两个,依次比较,有一样的就把前一个变成10,并把数字重复的个数+1
boolean jieGuo=false;
for (int i = 0; i < numArr.length-3; i++) {
	if(numArr[i]==numArr[i+1]){
		if(numArr[i+1]==numArr[i+2]){
			if(numArr[i+2]==numArr[i+3]){
				jieGuo=true;
			}
		}
	}
}
System.out.println(jieGuo);

5.手动输入两个数组,将两个数组整合成为一个数组,并由大到小进行排序。

int[] numArr1=new int[0];//用户输入数组1
int[] numArr2=new int[0];//用户输入数组2
//开始让用户输入
System.out.println("请输入第一个数组各项(输入-1结束):");
while(true){
	Scanner sc= new Scanner(System.in);
	int num=sc.nextInt();
	if(num==-1){
		break;
	}
	numArr1=Arrays.copyOf(numArr1,numArr1.length+1);
	numArr1[numArr1.length-1]=num;
}
System.out.println("请输入第二个数组各项(输入-1结束):");
while(true){
	Scanner sc= new Scanner(System.in);
	int num=sc.nextInt();
	if(num==-1){
		break;
	}
	numArr2=Arrays.copyOf(numArr2,numArr2.length+1);
	numArr2[numArr2.length-1]=num;
}
//定义合并数组
int[] numArrAll=new int[numArr1.length+numArr2.length];
//将两个数组遍历进合并数组
for (int i = 0; i < numArr1.length; i++) {
	numArrAll[i]=numArr1[i];
}
for (int i = numArr1.length; i < (numArr1.length+numArr2.length); i++) {
	numArrAll[i]=numArr2[i-numArr1.length];
}
//再次从小到大排序,此时重复的已经变成10了,10的个数为chongFu,
Arrays.sort(numArrAll);
System.out.println(Arrays.toString(numArrAll));
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值