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));