[英]Need to get highest and lowest value without array
我正在做一個作業,我必須每周花費7天,每個作為變量並創建兩個函數。 一個找到7天的平均溫度,另一個找到7天的最冷和最熱的溫度。 我們不允許使用數組。 我知道這是很多無用的代碼,但這是分配所要求的。
我的問題是我可以弄清楚如何找到最小值和最大值。 有什么建議么?
import java.util.Scanner;
public class Temperature {
public static void getAverage(double day1, double day2, double day3, double day4,
double day5, double day6, double day7){
double average = (day1 + day2 + day3 + day4 + day5 + day6 + day7)/7;
System.out.printf("The average is: %.2f\n", average);
}
public static void getHotAndCold( double day1, double day2, double day3, double day4,
double day5, double day6, double day7){
}
public static void main(String [] args){
Scanner s = new Scanner(System.in);
double day1, day2, day3, day4, day5, day6, day7;
System.out.println("Enter the temperatures for each day of the week starting with, Monday");
day1 = s.nextDouble();
System.out.println("Tuesday");
day2 = s.nextDouble();
System.out.println("Wednesday");
day3 = s.nextDouble();
System.out.println("Thursday");
day4 = s.nextDouble();
System.out.println("Friday");
day5 = s.nextDouble();
System.out.println("Saturday");
day6 = s.nextDouble();
System.out.println("Sunday");
day7 = s.nextDouble();
getAverage(day1, day2, day3, day4, day5, day6, day7);
}
}
你可以做這樣的事情。 使用Math.max
來獲取一對的最大值,然后繼續進行直到直到第七天。 最后一個與的比較將值賦給全局變量。
double max;
double min;
public static void getMaxAndMin(
double day1, double day2, double day3, double day4,
double day5, double day6, double day7){
max = Math.max(day1, day2);
max = Math.max(max, day3);
max = Math.max(max, day4);
max = Math.max(max, day5);
max = Math.max(max, day6);
max = Math.max(max, day7);
min = Math.min(day1, day2);
min = Math.min(min, day3);
min = Math.min(min, day4);
min = Math.min(min, day5);
min = Math.min(min, day6);
min = Math.min(min, day7);
}
您可以執行以下操作:
public static void getHotAndCold( double day1, double day2, double day3, double day4,
double day5, double day6, double day7)
{
double min = day1;
double max = day1;
if (day2 < min)
{
min = day2;
}
if (day2 > max)
{
max = day2;
}
// and so on.
}
如果您確實想循環播放(或只是故意進行循環播放):
// create your own node to link days
public static class Day{
double temp;
Day next;
Day(double temp, Day next){
this.temp = temp;
this.next = next;
}
}
public static double coldest(Day day){
double minTemp = day.temp;
while((day = day.next) != null) minTemp = Math.min(day.temp, minTemp);
return minTemp;
}
//etc...
public static void main(String... args){
Day days = new Day(70, new Day(60, new Day(65, new Day(45,
new Day(83, new Day(72, new Day(55,null)))))));
System.out.println("Coldest:" + coldest(days));
}
不同於其他答案。
double max, min;
public static void getMaxMin(double day1, double day2, double day3, double day4,
double day5, double day6, double day7){
max = Math.max(day1, Math.max(day2, Math.max(day3, Math.max(day4,
Math.max(day5, Math.max(day6, day7))))));
min = Math.min(day1, Math.min(day2, Math.min(day3, Math.min(day4,
Math.min(day5, Math.min(day6, day7))))));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.