java SE教程06

来源:互联网 发布:mac 六国 重新启动 编辑:程序博客网 时间:2024/05/17 05:16

数字的统计,

提示用户输入的一个长度8位正整数数字 , 我们来统计这个数字中的每一位上出现的数字的重复次数 :

例如:

11223344 里面出现了两个1 , 两个2 两个3 两个4如何取出每一位的数字: int a = 11223344个位数: a%10;    a = a/10;十位数: a%10;    a = a/10;百位数: a%10;    a = a/10;千位数: a%10;

import java.util.Scanner;
public class Demo1{
public static void main(String[] args){
System.out.println(“请输入一个小于21亿的数字:”);
Scanner input = new Scanner(System.in);
//用户输入的数字 1 1 2 2
int number = input.nextInt();
int[] arr = new int[10];
int maxIndex = 0;
for(int i=0;;i++){
arr[i] = number%10;
number /= 10;
if(number==0){
//当循环准备退出时, 将当前存储的下标(也就是最大有效数据下标存储到这个变量maxIndex上)
maxIndex = i;
break;
}
}
//——————–

    for(int i=0;i<=maxIndex;i++){        System.out.print(arr[i]+" , ");    }       //----------------------------    //1.    存储位数上的数字 (保证不重复)    int[] arr2 = new int[arr.length];    //2.    存储与上述数组对应的次数    int[] arr3 = new int[arr.length];    //3.    arr2中存储到了哪个下标的标记    int arr2Index = 0;    for(int i=0;i<=maxIndex;i++){        /*判断arr[i],也就是当前进行比较的数字, 是否再arr2这个数组中存在*/        //用来表示下个比较的循环结果, 如果循环找到了相同的则表示false        boolean flag = true;        for(int j=0;j<arr2Index;j++){            if(arr[i]==arr2[j]){                flag = false;            }        }    //---------------------------------------        if(flag){            //表示从未比较过此数字            arr2[arr2Index] = arr[i];            arr3[arr2Index] = 1;            arr2Index++;            for(int j=i;j<arr.length-1;j++){                if(arr[i]==arr[j+1]){                    //如果相同表示i坐标存在相同的数字                    arr3[arr2Index-1]+=1;                    //System.out.println("寻找到一个相同的:"+arr[i]);                }            }        }else{            //表示这个数字 再arr2数组中存在, 无需再进行比较        }    }    System.out.println();    for(int i=0;i<arr2Index;i++){        System.out.print("数字:"+arr2[i]+"出现了"+arr3[i]+"次,");    }}

}
简单实现:

    System.out.println("请输入一个小于21亿的数字:");    Scanner input = new Scanner(System.in);    int number = input.nextInt();    int[] arr = new int[10];    for(int i=0;;i++){        //arr[i] = number%10;        arr[number%10]+=1;        number /= 10;        if(number==0){              break;        }    }

练习:

求出如下数组中数组的 , 最大值, 最小值, 平均值:

int[] arr = {-2,-4,-6,-8,-10,-15};

求最大值:

int max = arr[0];//错误

for(int i=1;i

内层循环length-i-1

标准升序排列模版代码:

int[] arr = {任意数组};
int temp;
for(int i=0;i

原创粉丝点击