gpt4 book ai didi

java - 如何确定重复整数的个数及其个数?

转载 作者:行者123 更新时间:2023-12-01 11:42:59 25 4
gpt4 key购买 nike

我尝试编写一个程序来确定数组中重复整数的数量及其计数,但程序输出大致完整,所以我的问题是我的代码中的问题是什么,我不想使用任何类,谢谢。

例如:

输入:输入数组大小:11输入数组元素:1334224第499章42218411输出:有3个重复的数字:22:2次4:3次1:2次

但我的输出是:

1:2倍4:3次4:2次22:2次

import java.util.Scanner;

public class repeated_elements {

public static void main(String[] args) {
Scanner input = new Scanner (System.in);
// User Choose The Array Size
System.out.println("Enter Array Size: ");
int size = input.nextInt();

// The Array
int[]Array = new int[size];

// Read The Array Elements From The User
System.out.println("Enter Array Elements:");
for(int i =0; i<size; i++){
Array[i]=input.nextInt();
}

// Sorting The Array (Ascending Order)
for(int j = 0; j<size; j++){

int mini = Array[j];
int mini_index = j;

for(int i = j; i<size; i++){
if(Array[i] < mini){
mini = Array[i];
mini_index = i;
}
}
int tmp = Array[j];
Array[j] = Array[mini_index];
Array[mini_index] = tmp;
}

// Count The Repeated Numbers
for(int i=0; i<size; i++){

int key = Array[i];
int counter = 0;

for(int j=i; j<size; j++){
if(key == Array[j]){
counter++;
}
}

if(counter > 1 ){
System.out.println(Array[i]+":"+counter+" times ");
}
}
}
}

最佳答案

而不是这段代码:

   // Count The Repeated Numbers
for(int i=0; i<size; i++){

int key = Array[i];
int counter = 0;

for(int j=i; j<size; j++){
if(key == Array[j]){
counter++;
}
}

if(counter > 1 ){
System.out.println(Array[i]+":"+counter+" times ");
}
}

试试这个:

   // Count The Repeated Numbers
for(int i=0; i<size; ){ //<--- note the removal of i++

int key = Array[i];
int counter = 0;

for(int j=i; j<size; j++){
if(key == Array[j]){
counter++;
}else{
i=j;
break;
}
}

if(counter > 1 ){
System.out.println(key+":"+counter+" times ");
}
}

问题是您没有同步 ij 变量

对于这样的输入:

1 1 1 1

你会得到

1:4
1:3
1:2

更正后,我测试了程序和输入:

11
13 34 22 4 499 4 22 18 4 1 1

我明白了:

1:2 times 
4:3 times
22:2 times

编辑:正如@CabelB 建议的那样。也值得看看 Map 实现。

关于java - 如何确定重复整数的个数及其个数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29369315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com