Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-使用数组显示一周的温度统计信息_Java_Arrays - Fatal编程技术网

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());
        }
    }