繁体   English   中英

Count Occurence没有添加

[英]Count Occurence isn't adding

我遇到这个程序有问题,问我:编写一个程序,在0-9之间生成10个整数,并显示每个数字的计数。 我在每个单位数字的计数发生时遇到问题。 看来我的程序没有添加正确的计数器。 这是我的计划:

我试图阅读其他代码以帮助解决它,但没有任何效果。

import java.util.*;
import java.util.Arrays;
public class CountsArray {
    public static void main(String[] args) {

        int[] list = new int[10];

        int[] num = new int[10];



        for(int i = 0; i< list.length;i++) {

            list[i] = (int)(Math.random()*10+1);



        }

        for(int i = 0; i< list.length;i++) {

            System.out.print(list[i] + " ");

        }

        System.out.println();



        int temp = 0;

        for(int i = 0; i <num.length;i++) {

            temp = num[i];

            list[temp]++;

        }

        for(int i = 0;i < list.length;i++) {

            if(list[i]>0 && list[i]==1) {

    System.out.printf("%d occurs %d time\n",i, list[i]);

        }

            else if(list[i] >= 2) {

    System.out.printf("%d occurs %d times \n", i, num);

        }



        }

        }}

如果随机数为:1 1 2 2 2 3 3输出应该是1次发生2次,2次发生3次,3次发生2次。 有人能指出我正确的方向吗?

一种方法是确保数字有序(看看Arrays.sort ),然后遍历数组 - 如果当前数字与最后一个相同,则添加到计数,或者否则为新号码开始新的计数。

你可以这样做,首先因为随机整数是0到9所以在Math.random()中加1也会产生10个问题,然后按照问题增加位数(即如果你在列表中遇到3个)当你遍历列表然后打印num,如果num [i]> 0,那么将num [3]增加1,因为3的计数现在为1)因为可能存在根本没有发生的整数。

`int[] list = new int[10];
    int[] num = new int[10];
    for(int i = 0; i< list.length;i++) {
        list[i] = (int)(Math.random()*10);
    }
    for(int i = 0; i< list.length;i++) {
        System.out.print(list[i] + " ");
    }
    System.out.println();
    for (int i = 0; i < list.length; i++) {
        ++num[list[i]];
    }
    for (int i = 0; i < num.length; i++) {
        if(num[i]>0){
            System.out.printf("%d occurs %d times\n",i,num[i]);
        }
    }`

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM