数组 - 跟踪用户输入的频率数

时间:2018-05-04 03:14:46

标签: java arrays

我计划了一个简单的程序,用户需要10 int,如果用户输入相同的号码,它会被添加到名为Frequency的新array

例如,用户输入[1,5,2,1,5,7,8,4,5,9],频率数组将为[2,3,1,2,3,1,1,1,3,1]

这是我到目前为止所尝试的内容,但我没有成功完成此任务。

int[] arr = new int [10];
  Scanner s = new Scanner(System.in);
  for(int i = 0; i< arr.length; i++)
  {
     System.out.println("Enter upto 10 numbers:");
     arr[i] = s.nextInt();
  }
  int[] freq = new int[10];
  for(int i=0; i< arr.length; i++)
  {
    //Frequency Method    
  }


public static int frequency(int[] total)
{
  int count = 0;
     // lost from here 

  }
  return count;
}

感谢任何帮助。感谢您的时间和精力

2 个答案:

答案 0 :(得分:0)

在静态方法中,我会进行修改,以便它需要int[] totalint value,并在方法中创建一个新的int被调用的计数器,其值为0并创建一个for循环遍历int[] total并比较int[i] total == value是否为return,如果是,则将计数器增加1并将计数器freq[i] = frequency(arr, arr[i]);增加。

完成频率后,使用另一个for循环通过用户输入迭代数组,并在for循环中添加class Player(pygame.sprite.Sprite): def __init__(self,x,y): super(Player,self).__init__() self.image=player_image self.original_image=self.image self.rect=self.image.get_rect(center=(x,y)) self.change_x=0 self.change_y=0 self.speed=7.5 self.inventory={'wood':0} def changespeed(self,x,y): self.change_x+=x self.change_y+=y def update(self,rect): player.rotate() self.rect.x+=self.change_x self.rect.y+=self.change_y screen.blit(self.image,(rect.x,rect.y)) def check(self): global tick if pygame.mouse.get_pressed()[0]: for tree in resources: tree_rect=tree.rect if self.rect.colliderect(tree_rect) and tick>=9: self.inventory['wood']+=1 tick=0 def rotate(self): mouse_x, mouse_y = pygame.mouse.get_pos() rel_x, rel_y = mouse_x - self.rect.x, mouse_y -self.rect.y angle = (180 / math.pi) * -math.atan2(rel_y, rel_x) self.image = pygame.transform.rotate(self.original_image, int(angle)) self.rect = self.image.get_rect(center=(self.rect.x,self.rect.y)) ,这将在频率数组中添加重复数字。

答案 1 :(得分:0)

只是为了好玩,这是使用Java流的单行解决方案:

int[] freq = Arrays.stream(arr).map(x->(int)Arrays.stream(arr).filter(y->x==y).count()).toArray();