gpt4 book ai didi

java - java计算两个数组中某个数字出现的次数

转载 作者:行者123 更新时间:2023-11-30 07:54:22 24 4
gpt4 key购买 nike

需要找到两个数组中的最小和最大以及这两个数字在两个数组中出现的次数。

package Assignment;
import java.util.Scanner;

public class ArrayTester {
public static double counts (int[] sampled, int val) {
int count = 0;

for (int i = 0; i < sampled.length; i++) {
if (sampled[i] == val) {
count++;
}
}

return count;
}

public static void main(String[] args) {
int[] numbers1;
int[] numbers2;
numbers1 = new int[5];
numbers2 = new int[5];
int smallest , largest , array_number1, array_number2;
int smallest1 = numbers1[0], largest1 = numbers1[0];
int smallest2 = numbers2[0], largest2 = numbers2[0];

// create Scanner object
Scanner input = new Scanner(System.in);

System.out.print("Please enter 5 numbers: \n");

for (int counter = 0; counter < numbers1.length; counter++) {
numbers1[counter] = input.nextInt();
}

// finding smallest and largest value in 1st array
for (int i : numbers1) {
if (i < smallest1) {
smallest1 = i;
}
else if (i > largest1) {
largest1 = i;
}
}

System.out.print("Please enter 5 numbers: \n");
for (int counter = 0; counter < numbers2.length; counter++) {
numbers2[counter] = input.nextInt();
}

// finding smallest and largest value in 2nd array
for (int i : numbers2) {
if (i < smallest2) {
smallest2 = i;
} // end finding smallest
else if (i > largest2) {
largest2 = i;
} // end finding largest number
}

// finding smallest and largest value of both the array.## Heading ##
if (smallest1 < smallest2) {
smallest=smallest1;
array_number1 = 1;
} else {
smallest=smallest2;
array_number1 = 2;
}

if (largest1 > largest2) {
largest = largest1;
array_number2 = 1;
} else {
largest = largest2;
array_number2 = 2;
}

System.out.printf("Smallest number: %d \t %d \nLargest number: %d \t %d \n", smallest,array_number1, largest, array_number2);
}
}

解释如何从两个数组中获取最小值和最大值的计数。

最佳答案

以下代码将执行您想要的操作:

   public static void main(String[] args) {
int[] numbers1;
int[] numbers2;
numbers1 = new int[5];
numbers2 = new int[5];
int smallest , largest , array_number1, array_number2;
int smallestOccurence = 0, largestOccurence = 0;
// create Scanner object
Scanner input = new Scanner(System.in);

System.out.print("Please enter 5 numbers: \n");

for (int counter = 0; counter < numbers1.length; counter++) {
numbers1[counter] = input.nextInt();
}
int smallest1 = numbers1[0], largest1 = numbers1[0];
// finding smallest and largest value in 1st array
for (int i : numbers1) {
if (i < smallest1) {
smallest1 = i;
}
else if (i > largest1) {
largest1 = i;
}
}

System.out.print("Please enter 5 numbers: \n");
for (int counter = 0; counter < numbers2.length; counter++) {
numbers2[counter] = input.nextInt();
}
int smallest2 = numbers2[0], largest2 = numbers2[0];

// finding smallest and largest value in 2nd array
for (int i : numbers2) {
if (i < smallest2) {
smallest2 = i;
} // end finding smallest
else if (i > largest2) {
largest2 = i;
} // end finding largest number
}
// finding smallest and largest value of both the array.## Heading ##
if(smallest1 < smallest2){
smallest=smallest1;
array_number1 = 1;
} else {
smallest=smallest2;
array_number1 = 2;
}

if(largest1 > largest2){
largest=largest1;
array_number2 = 1;
} else {
largest=largest2;
array_number2 = 2;
}

System.out.printf("Smallest number: %d \t %d \nLargest number: %d \t %d \n", smallest, array_number1, largest, array_number2);
// You dont know the smallest and largest until we traverse the arrays atleast once. Once we know them we need to search for them in array again.
for(int item : numbers1) {
if(item == smallest) smallestOccurence++;
if(item == largest) largestOccurence++;
}
for(int item : numbers2) {
if(item == smallest) smallestOccurence++;
if(item == largest) largestOccurence++;
}
System.out.println("Occurences of smallest: " + smallest + " and largest: " + largestOccurence);

}
public static double counts (int[] sampled, int val)
{
int count = 0;
for (int i = 0; i < sampled.length; i++) {
if (sampled[i] == val) {
count++;
}
}
return count;
}

解释:我们需要遍历两个数组至少一次才能找到数组中的最小和最大。一旦找到最小和最大,我们就需要再次遍历两个数组以找到它们出现的次数。此外,我们还需要移动 smallest1 等的声明,否则它们的值为零(数组元素的默认值)并且始终是最小的(直到存储负数)。

示例运行:

请输入5个数字:
5
5
4
3
1
请输入5个数字:
5
5
2
3
1
最小数:1 2
最大数量:5 2
最小出现次数:1 次,最大出现次数:4

关于java - java计算两个数组中某个数字出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32880185/

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