gpt4 book ai didi

JAVA - 如何在循环内的数组中存储最大值和最小值?

转载 作者:太空宇宙 更新时间:2023-11-04 07:14:47 25 4
gpt4 key购买 nike

我需要将最小值和最大值存储在给定的数组中,然后用特定字符打印它们(+表示最大值,“-”表示最小值,“*”表示其余所有值)。

我想我已经完成了大部分工作,除了适本地存储值,这样所有的值都不会像当前打印出来的那样“++++++++++....”。

有什么想法吗?非常感谢您的帮助。

      public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
int numbers[] = new int[24];
int min = Integer.MAX_VALUE;
int max=Integer.MIN_VALUE;
int maxhour = 0;
int minhour = 0;
int total = 0;
char MAX = '+', MIN = '-', MIDDLE = '*';
char currentchar = 0;
for(int i=0; i< numbers.length; i++){
numbers[i] = keyboard.nextInt();
total = total + numbers[i];
if(numbers[i]<min){
min = numbers[i];
minhour = i;
currentchar = MIN;
}else if (numbers[i]>max){
max = numbers[i];
maxhour = i;
currentchar = MAX;
}
}
for(int i=0; i< numbers.length; i++){
System.out.print("Hour " + i + ":");
printTimes(currentchar, numbers[i]);
System.out.println("");
}

System.out.println("Largest Number of hits is : " + max + " at hour " + maxhour);
System.out.println("Average Number of hits is : " + (total/24) + " per hour");
System.out.println("Smallest Number of hits is : " + min + " at hour " + minhour);



}

public static void printTimes(char c, int times) {
if (times >= 70) {
for(int i=0; i< 69; i++){
System.out.print(c);
} System.out.print(">");
} else if (times < 70) {
for(int i=0; i< times; i++)
System.out.print(c);
}
}


}

电流输出示例:

42 29 36 7 5 3 10 13 33 40 51 4922 58 63 102 65 58 48 24 36 48 52 42

0小时:++++++++++++++++++++++++++++++++++++++++++++

第一小时:++++++++++++++++++++++++++++++

第二小时:++++++++++++++++++++++++++++++++++++++

第 3 小时:+++++++

第四小时:+++++

第 5 小时:+++

第 6 小时:++++++++++

第 7 小时:++++++++++++++

第 8 小时:++++++++++++++++++++++++++++++++++

第九个小时:++++++++++++++++++++++++++++++++++++++++++

...

最大点击数为:15 小时 102

平均点击次数为:每小时 39 次

最小点击次数为:第 5 小时 3 次

最佳答案

只需更改您最后的:

for (int i = 0; i < numbers.length; i++) {
System.out.print("Hour " + i + ":");
if (numbers[i] == min)
currentchar = MIN;
else if (numbers[i] == max)
currentchar = MAX;
else
currentchar = MIDDLE;
printTimes(currentchar, numbers[i]);
System.out.println("");
}

关于JAVA - 如何在循环内的数组中存储最大值和最小值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20113031/

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