Java-使用数组显示一周的温度统计信息
我目前正在为学校的一项作业做一个习题集,我真的快完成了,但是我遇到了一些编译错误 习题集包括显示周平均温度、最高温度、最低温度以及一周中最热和最冷的天数 目前我想做的是显示一周中最热的几天,如果我计算出来,我可以很容易地找到一周中最冷的几天 当我试图编译代码时,我遇到了一些编译错误,其中包括Java-使用数组显示一周的温度统计信息,java,arrays,Java,Arrays,我目前正在为学校的一项作业做一个习题集,我真的快完成了,但是我遇到了一些编译错误 习题集包括显示周平均温度、最高温度、最低温度以及一周中最热和最冷的天数 目前我想做的是显示一周中最热的几天,如果我计算出来,我可以很容易地找到一周中最冷的几天 当我试图编译代码时,我遇到了一些编译错误,其中包括 不兼容的类型:int[]无法转换为int 错误:找不到符号 如果我能得到一些关于做什么的指导,那就太好了,我现在不知所措 公共类test1 { //主要方法 公共静态void main(字符串[]ar
- 不兼容的类型:int[]无法转换为int
- 错误:找不到符号
公共类test1
{
//主要方法
公共静态void main(字符串[]args)
{
//创建一个新的扫描仪
扫描仪输入=新扫描仪(System.in);
//设置数组列表
int[]templast=新int[7];
//提示用户输入并存储输入
System.out.println(“输入一周内每天的最高温度(从周日开始):”;
for(int i=0;i数组[i])
min=数组[i];
}
返回最小值;
}
//回归日
公共静态字符串工作日(int i,int[]数组)
{
int[]displayWeekDay=searchTemp(数组,i);
对于(i=0;i0&&index[j-1]==i)
继续;
否则{
指数[j]=i;
打破
}
}
}
}
收益指数;
}
}
在这个方法中,假设您返回一个字符串类型的值
编辑:将字符串变量更改为其他名称。不能将其与方法的名称相同
在这个方法中,假设您返回一个字符串类型的值
编辑:将字符串变量更改为其他名称。在main方法的最后一条语句中,您不能将其与方法名相同
System.out.print(工作日(templast,maxTemp))代码>
weekDay将int
作为第一个参数,但tempList的类型为int[]
。您应该在方法调用或定义中交换tempList和maxTemp的顺序。在main方法的最后一个语句中,您执行System.out.print(工作日(tempList,maxTemp))代码>
weekDay将int
作为第一个参数,但tempList的类型为int[]
。您应该在方法调用或定义中交换tempList和maxTemp的顺序。我使用您链接的网站检查了代码
首先,您应该学习使用调试器,因为它通常会告诉您错误是什么以及在哪里找到它李>
这里它指向templast
的数据类型上的一个错误。这意味着int数组不能转换为int。如果您查看weekDay()
函数,您将看到第一个参数要求int,但您传递的是int数组。这行不通
public static String weekDay(int i, int[] array)
编辑:如果要将特定值从数组传递到函数中,只需使用
System.out.print(weekDay(tempList[IntegerPosition],maxTemp));
^
这仅仅意味着它在当前范围内找不到变量。关于这一点,有很多东西需要学习,但我要说的是重点
// Return days
public static String weekDay(int i, int[] array)
{
int[] displayWeekDay = searchTemp(array, i);
String weekDay = "";
for(i = 0; i < displayWeekDay.length; i++){
//String weekDay = ""; Declare weekDay outside of the loop
switch(i)
{
//Assign a value to weekDay, simply returning won't do it
case 0: weekDay = "Sunday"; break;
case 1: weekDay = "Monday"; break;
case 2: weekDay = "Tuesday"; break;
case 3: weekDay = "Wednesdays"; break;
case 4: weekDay = "Thursday"; break;
case 5: weekDay = "Friday"; break;
case 6: weekDay = "Saturday"; break;
}
}
return weekDay;
}
//返回天数
公共静态字符串工作日(int i,int[]数组)
{
int[]displayWeekDay=searchTemp(数组,i);
字符串weekDay=“”;
对于(i=0;ipublic static String weekDay(int i, int[] array)
System.out.print(weekDay(tempList[IntegerPosition],maxTemp));
^
Main.java:104: error: cannot find symbol
return weekDay;
^
// Return days
public static String weekDay(int i, int[] array)
{
int[] displayWeekDay = searchTemp(array, i);
String weekDay = "";
for(i = 0; i < displayWeekDay.length; i++){
//String weekDay = ""; Declare weekDay outside of the loop
switch(i)
{
//Assign a value to weekDay, simply returning won't do it
case 0: weekDay = "Sunday"; break;
case 1: weekDay = "Monday"; break;
case 2: weekDay = "Tuesday"; break;
case 3: weekDay = "Wednesdays"; break;
case 4: weekDay = "Thursday"; break;
case 5: weekDay = "Friday"; break;
case 6: weekDay = "Saturday"; break;
}
}
return weekDay;
}
//Call the function directly without putting a print statement around it
weekDay(maxTemp,tempList));
//...
// Return days
public static void weekDay(int i, int[] array) //Change the return type to void
{
int[] displayWeekDay = searchTemp(array, i);
for(i = 0; i < displayWeekDay.length; i++){
switch(displayWeekDay[i])
{
//Print each one
case 0: System.out.println("Sunday"); break;
case 1: System.out.println("Monday"); break;
case 2: System.out.println("Tuesday"); break;
case 3: System.out.println("Wednesday"); break;
case 4: System.out.println("Thursday"); break;
case 5: System.out.println("Friday"); break;
case 6: System.out.println("Saturday"); break;
}
}
}
import java.util.Date;
import java.util.Map;
import java.util.TreeMap;
import java.util.stream.Collectors;
/**
* Created by Michael
* Creation date 3/19/2016.
* @link https://stackoverflow.com/questions/36107614/java-displaying-the-temperature-statistics-of-the-week-using-arrays
*/
public class TemperatureHistory {
private Map<Date, Double> temperatureHistory = new TreeMap<>();
public void addDataPoint(Date date, Double temperature) {
if (date != null && temperature != null) {
this.temperatureHistory.put(date, temperature);
}
}
public Double getAverageTemperature() {
double averageTemperature = 0.0;
if (this.temperatureHistory.size() > 0) {
averageTemperature = this.temperatureHistory.values()
.stream()
.collect(Collectors.averagingDouble(value -> value));
}
return averageTemperature;
}
public Double getMaxTemperature() {
return this.temperatureHistory.entrySet()
.stream()
.max((e1, e2) -> e1.getValue().compareTo(e2.getValue()))
.get()
.getValue();
}
public Double getMinTemperature() {
return this.temperatureHistory.entrySet()
.stream()
.min((e1, e2) -> e1.getValue().compareTo(e2.getValue()))
.get()
.getValue();
}
public Date getFirstDateForTemperature(Double temperature) {
return this.temperatureHistory.entrySet()
.stream()
.filter(e -> e.getValue().equals(temperature))
.map(Map.Entry::getKey)
.findFirst()
.orElse(null);
}
public Date getDateMinTemperature() {
return this.getFirstDateForTemperature(this.getMinTemperature());
}
public Date getDateMaxTemperature() {
return this.getFirstDateForTemperature(this.getMaxTemperature());
}
}